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

在 WooCommerce 订单和电子邮件上保存并显示产品自定义元

在 WooCommerce 订单和电子邮件上保存并显示产品自定义元

PHP
UYOU 2023-08-19 10:23:57
好的,基本上我们在 WooCommerce 商店中使用 ACF 创建了一个自定义字段,以便为特定产品添加“发货延迟”通知。以下是我们所取得成果的演示:https ://www.safe-company.com/shop/machines/uvc-disinfection-lamp/单个产品页面参考图片然后,我们设法使用 Elementor(页面构建器)将此通知放入单个产品页面中,然后将此信息添加到购物车和结帐页面中的商品数据中,并将以下代码添加到我们的functions.php中// Render the custom product field in cart and checkoutadd_filter( 'woocommerce_get_item_data', 'wc_add_shipping_delay', 10, 2 );function wc_add_shipping_delay( $cart_data, $cart_item ) {    $custom_items = array();    if( !empty( $cart_data ) )        $custom_items = $cart_data;    // Get the product ID    $product_id = $cart_item['product_id'];    if( $custom_field_value = get_post_meta( $product_id, 'shipping_delay_for_out_of_stock_items', true ) )        $custom_items[] = array(            'name'      => __( 'Shipping Delay', 'woocommerce' ),            'value'     => $custom_field_value,            'display'   => $custom_field_value,        );    return $custom_items;}购物车页面中的项目元中的自定义字段我们现在的问题是,我们需要将此运送延迟通知添加到电子邮件中(分别显示在包含此数据的每个项目下方)以及订单页面上。怎么可能呢?因为我已经检查了很多关于此的线程,但所有这些线程都是使用动态字段(用户在购买时完成)完成的,但我们的案例场景完全不同。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

以下内容会将您的自定义字段保存为订单项元数据并在各处显示:


// Save and display "shipping delay" on order items everywhere

add_filter( 'woocommerce_checkout_create_order_line_item', 'action_wc_checkout_create_order_line_item', 10, 4 );

function action_wc_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {


    // Get the shipping delay

    $value = $values['data']->get_meta( 'shipping_delay_for_out_of_stock_items' );


    if( ! empty( $value ) ) {

        // Save it and display it

        $item->update_meta_data( __( 'Shipping Delay', 'woocommerce' ), $value );

    }

}   

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

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