首页 文章

根据送货方式自定义Woocommerce新订单电子邮件通知[关闭]

提问于
浏览
2

如何编辑admin-new-order.php WooCommerce模板,根据送货方式有条件地发送一些自定义客户详细信息?

例如(对于新订单电子邮件通知):

  • 如果订单发货方法是 flat rate ,我想在客户详细信息中添加一些自定义字段信息 .

  • 如果订单发货方式不是 flat rate ,我不希望显示自定义字段信息 .

或者也许在function.php中有一些代码片段?

1 回答

  • 2

    您可以使用挂钩在任何此挂钩中的自定义函数(调整挂钩优先级):

    • woocommerce_email_order_details

    • woocommerce_email_order_meta

    • woocommerce_email_customer_details

    这是一个钩子代码的例子(而不是覆盖模板):

    add_action ('woocommerce_email_customer_details', 'custom_email_customer_details', 15, 4);
    function custom_email_customer_details( $order, $sent_to_admin, $plain_text, $email ){
    
        // Only for "New Order" email notification
        if ( 'new_order' != $email->id ) return;
    
        // Only "Flat Rate" Shipping Method
        if ( $order->has_shipping_method('flat_rate') ){
            $order_id = $order->get_id(); // The Order ID
    
            // Test output
            echo "<p>Message: The Order ID is $order_id</p>";
            echo '<p>Custom field: '. get_post_meta( $order_id, '_recorded_sales', true ) .'</p>';
        }
    }
    

    这里的挂钩优先级是15,所以它是在客户详细信息之后 .

    代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中 .

    此代码经过测试和运行 .

相关问题