在 Woocommerce 管理员电子邮件通知中显示产品 ACF 值
Display product ACF value in Woocommerce admin email notifications
正在尝试获取 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>";
}
}
如有任何建议或帮助,我们将不胜感激。
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
正在尝试获取 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>";
}
}
如有任何建议或帮助,我们将不胜感激。
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