• Resolved texnavi2024

    (@texnavi2024)


    I have edited the Customer Processing Order email template in woocommerce as trying to display different messages in emails sent to customers depending on either Local Pickup or Shipping is selected at checkout. Using Kadence plugin however it doesn’t want to display the different message for customers who select Local Pickup but will always display the other option (Please print this…).

    Any advice/help would be much appreciated. Thank you

    <?php
    /**
     * Customer processing order email
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php.
     *
     * HOWEVER, on occasion WooCommerce will need to update template files and you
     * (the theme developer) will need to copy the new files to your theme to
     * maintain compatibility. We try to do this as little as possible, but it does
     * happen. When this occurs the version of the template file will be bumped and
     * the readme will list any important changes.
     *
     * @see https://woocommerce.com/document/template-structure/
     * @package WooCommerce\Templates\Emails
     * @version 3.7.0
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
        exit;
    }
    
    /*
     * @hooked WC_Emails::email_header() Output the email header
     */
    do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
    
    <?php /* translators: %s: Customer first name */ ?>
    <p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
    <?php /* translators: %s: Order number */ ?>
    <p><?php printf( esc_html__( 'Thank you for your order #%s.', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p>
    
    <?php
    // Check if local pickup is selected
    if ( $order->get_shipping_method() === 'local_pickup' ) {
        ?>
        <p><?php echo esc_html__( 'Your order is available for local pickup. Please visit our store at the following address:', 'woocommerce' ); ?></p>
        <p><strong>
            company name<br>
            bla bla road<br>
            city here<br>
            zip code
        </strong></p>
        <?php
    } else {
        // For other shipping methods
        ?>
        <p><?php echo esc_html__( 'Please print this order confirmation and ship to:', 'woocommerce' ); ?></p>
        <p><strong>
            company<br>
            sample Road<br>
            City<br>
            zip code
        </strong></p>
        <?php
    }
    
    /*
     * @hooked WC_Emails::order_details() Shows the order details table.
     * @hooked WC_Structured_Data::generate_order_data() Generates structured data.
     * @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
     * @since 2.5.0
     */
    do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
    
    /*
     * @hooked WC_Emails::order_meta() Shows order meta data.
     */
    do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
    
    /*
     * @hooked WC_Emails::customer_details() Shows customer details
     * @hooked WC_Emails::email_address() Shows email address
     */
    do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
    
    /**
     * Show user-defined additional content - this is set in each email's settings.
     */
    if ( $additional_content ) {
        echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
    }
    
    /*
     * @hooked WC_Emails::email_footer() Output the email footer
     */
    do_action( 'woocommerce_email_footer', $email );
    
    
Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Support Gilbert Hernandez

    (@ghernkadence)

    Hello @texnavi2024

    You mentioned you edited the Customer Processing Order email template in WooCommerce. Does this mean you have a child theme and added the file to yourtheme/woocommerce/emails/customer-processing-order.php? If you only edited the file in your WooCommerce plugin folder, the Kadence Email Customizer template overrides it. To override the Kadence Email Customizer template, use a child theme and replace the above file. Please let us know if this information helps or if you have additional questions.

    Thread Starter texnavi2024

    (@texnavi2024)

    Hi @ghernkadence, thank you for trying to help. The theme I am using is Hello Elementor and I have edited the file in the “Theme File Editor” which means the file was copied from Woocommerce/emails/customer-processing-order.php to the theme and edited there but as explained initially Kadence still only displays/sends the same email not taking into account the edited customer-processing-order.php file is actually edited to work different for Local pickup and Delivery.

    • This reply was modified 10 months, 1 week ago by texnavi2024.
    Plugin Support Gilbert Hernandez

    (@ghernkadence)

    Hello @texnavi2024,

    Thanks for confirming that you created the template correctly. I added your template to my site, and everything worked as expected after I made a small change. The problem is that you’re using the conditional:

    if ( $order->get_shipping_method() === 'local_pickup' ) {

    However, the shipping method isn’t ‘local_pickup‘ it is ‘Local pickup‘. Please update the one line to the following and let us know if it works for you. It works for me on my site.

    if ( $order->get_shipping_method() === 'Local pickup' ) {
    Plugin Support Gilbert Hernandez

    (@ghernkadence)

    Hello @texnavi2024,

    Actually, I realized that you set the “Name” of the shipping method. For example, I used “Local pickup” for my first tests. Then I updated the shipping method name (WooCommerce > Settings > Shipping > Shipping Zones). I updated the name to “local pickup” and the conditional began to fail. Be sure that your code uses the exact name of your shipping method as seen in the picture below.

    Thread Starter texnavi2024

    (@texnavi2024)

    hi @ghernkadence, I just tested this and it works! thanks a ton! it should be Local pickup instead of local_pickup ??

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Plugin doesn’t work with edited woocommerce email template’ is closed to new replies.