WooCommerce - Custom notice on Thankyou and “My account” view order pages

后端 未结 1 1260
终归单人心
终归单人心 2021-01-16 02:08

On WooCommerce I have a custom field days_manufacture for each product with different (integer) values.

Also I Have this code that dis

1条回答
  •  执笔经年
    2021-01-16 02:33

    Yes it is… but as there is no available hooks for this on the corresponding templates, You will have to override 2 templates (for that please read how to override woocommerce templates via a theme).

    Step 1 - The function

    function days_of_manufacture_order_view($order) {
            $day_txt = ' ' . __('day', 'your_theme_domain_slug' );
            $days_txt = ' ' . __('days', 'your_theme_domain_slug' );
            $text = __('Your Order will be produced in: ', 'your_theme_domain_slug' );
            $max_days = 0;
    
            foreach( $order->get_items() as $item )
                if(get_post_meta($item['product_id'], 'days_manufacture', true) > $max_days )
                    $max_days = get_post_meta($item['product_id'], 'days_manufacture', true);
    
            if($max_days != 0) {
                if ($max_days == 1)
                    $days_txt = $day_txt;
    
                $output = $text . $max_days . $days_txt;
                echo "
    $output
    "; // forcing display for some themes } }

    This code goes in function.php file of your active child theme (or theme) or also in any plugin file.

    Step 2 - inserting the function in the templates

    1) The My Account view order template:

    This template is located in your_theme/woocommerce/myaccount/view-order.php

    Here is an extract of this template (with the function inside it):

    
    
    

    2) The Thankyou view order template:

    This template is located in your_theme/woocommerce/checkout/thankyou.php

    Here is an extract of this template (with the function inside it):

    
    
    
    
        has_status( 'failed' ) ) : ?>
    

    This code is tested and working


    References:

    • Template Structure + Overriding Templates via a Theme
    • Woocommerce template myaccount > view-order.php
    • Woocommerce template checkout > thankyou.php

    0 讨论(0)
提交回复
热议问题