【问题标题】:Display product ACF value in Woocommerce admin email notifications在 Woocommerce 管理员电子邮件通知中显示产品 ACF 值
【发布时间】:2018-10-23 15:34:34
【问题描述】:

尝试在 woocommerce 产品中获取高级自定义字段以传递给管理员的新订单电子邮件。它仅供管理员参考,并且特定于每个产品。我已经尝试过,这会将其发送到后端,但不会发送到电子邮件中。

add_action( 'woocommerce_before_order_itemmeta', 'product_size', 10, 3 );
function product_size( $item_id, $item, $product ){
    // Only in backend Edit single Order pages
    if( current_user_can('edit_shop_orders') ):

    // The product ID 
    $product_id = $product->get_id();

    // Get your ACF product value 
    $acf_value = __('Size: ') . get_field( 'package_size', $product_id );

    // Outputing the value of the "package size" for this product item
    echo '<div class="wc-order-item-custom"><strong>'. $acf_value .'</strong></div>';

    endif;
}

我尝试使用它来获取电子邮件,但它终止了订单过程。它在后端完成,但在点击下订单后,它只是刷新结帐页面,并没有转到谢谢或生成电子邮件。

add_action( 'woocommerce_email_order_details', 'display', 10, 4 );
function display( $order, $sent_to_admin, $plain_text, $email ) {
global $product;
$id = $product->get_id();
    $value = get_field( "package_size", $id );

    if($value)  {
        echo "<p>Package Size : ".$value ."</p>";
    }

}

感谢任何建议或帮助。

【问题讨论】:

    标签: php wordpress woocommerce advanced-custom-fields email-notifications


    【解决方案1】:

    WC_Product 对象 $product 不能定义为全局变量。您需要先使用 foreach 循环来获取订单项。

    但由于一个订单可以包含许多项目(产品),因此您可能会为此 ACF 字段获得许多显示。

    您重新访问的代码:

    add_action( 'woocommerce_email_order_details', 'display_package_size_email_order_details', 10, 4 );
    function display_package_size_email_order_details( $order, $sent_to_admin, $plain_text, $email ) {
        // Only admin notifications
        if( ! $sent_to_admin )
             return; // Exit
    
        foreach( $order->get_items() as $item ) {
            if( $package_size = get_field( "package_size", $item->get_product_id() ) ){
                echo '<p><strong>'.__('Package Size').': </strong>'.$package_size.'</p>';
            }
        }
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    相关:Display value from ACF field in Woocommerce order email

    【讨论】:

    • 太棒了!工作完美。非常感谢
    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 2021-01-04
    • 2021-12-01
    • 1970-01-01
    • 2019-10-07
    • 2020-09-01
    相关资源
    最近更新 更多