为了账号安全,请及时绑定邮箱和手机立即绑定

如何在新订单电子邮件中显示 WooCommerce 自定义产品元?

如何在新订单电子邮件中显示 WooCommerce 自定义产品元?

PHP
陪伴而非守候 2024-01-19 14:46:16
我目前正在成功保存单个产品的自定义帖子元,如下所示:    function save_payment_terms( $product_id ) {        if ( isset( $_POST['payment_terms'] ) ) {            update_post_meta( $product_id, 'payment_terms', is_numeric( $_POST['payment_terms'] ) ? absint( wp_unslash( $_POST['payment_terms'] ) ) : '1' );        }    }我该如何将自定义帖子元添加到新订单确认电子邮件中?我尝试了以下钩子但没有成功:woocommerce_email_order_meta和woocommerce_order_item_meta_start。最新的迭代如下:add_action('woocommerce_order_item_meta_start', 'email_confirmation_display_order_items', 10, 4);function email_confirmation_display_order_items($item_id, $item, $order, $plain_text) {    echo '<div>Terms: '. wc_get_order_item_meta( $item_id, 'payment_terms') .'</div>';}导致:做 a var_dump,wc_get_order_item_meta我得到:../snippet-ops.php(446) : eval()'d code:7:boolean false任何人都可以阐明这一点吗?
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

请尝试以下方法:


add_action( 'woocommerce_order_item_meta_start', 'email_confirmation_display_order_items', 10, 3 );

function email_confirmation_display_order_items( $item_id, $item, $order ) {

    // On email notifications for line items

    if ( ! is_wc_endpoint_url() && $item->is_type('line_item') ) {

        $payment_terms = get_post_meta( $item->get_product_id(), 'payment_terms', true );


        if ( ! empty($payment_terms) ) {

            printf( '<div>' . __("Terms: %s", "woocommerce") . '</div>', $payment_terms );

        }

    }

}

代码位于活动子主题(或活动主题)的functions.php 文件中。它应该有效。


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 38 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信