woocommerce_add_order_item_meta 的问题
Problem with woocommerce_add_order_item_meta
我花了最后 3 个小时试图解决一个 woocommerce 弃用钩子的问题,我快要疯了,因为我尝试了数百种不同的选择来让它工作,但它没有发生。
这是实际的代码,它假设保存自定义字段的值。关于如何让它与非过时的钩子一起工作的想法吗?
add_action('woocommerce_add_order_item_meta','save_in_order_item_meta', 10, 3 );
function save_in_order_item_meta( $item_id, $values, $cart_item_key ) {
if( isset( $values['custom_data'] ) ) {
woocommerce_new_order_item( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
欢迎任何帮助。谢谢
编辑;
已经试过了。
add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 ); function custom_add_order_item_meta(
$item_id, $values, $cart_item_key ) { // Get cart item custom data and update order item meta if( isset( $values['custom_data'] ) ) {
wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] ); } }
add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 );
function custom_add_order_item_meta( $item_id, $values, $cart_item_key ) {
$custom_field_value = $custom_field_value;
if ( ! empty( $custom_field_value ) ){
wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
挂钩 woocommerce_add_order_item_meta
被 woocommerce_checkout_create_order_line_item
替换,因此使用您的代码 (假设购物车对象包含您的自定义购物车商品数据):
add_action('woocommerce_checkout_create_order_line_item', 'save_custom_order_item_meta_data', 10, 4 );
function save_custom_order_item_meta_data( $item, $cart_item_key, $values, $order ) {
if( isset( $values['custom_data']['label'] ) && isset( $values['custom_data']['value'] ) ) {
$item->update_meta_data( $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
相关:
我花了最后 3 个小时试图解决一个 woocommerce 弃用钩子的问题,我快要疯了,因为我尝试了数百种不同的选择来让它工作,但它没有发生。
这是实际的代码,它假设保存自定义字段的值。关于如何让它与非过时的钩子一起工作的想法吗?
add_action('woocommerce_add_order_item_meta','save_in_order_item_meta', 10, 3 );
function save_in_order_item_meta( $item_id, $values, $cart_item_key ) {
if( isset( $values['custom_data'] ) ) {
woocommerce_new_order_item( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
欢迎任何帮助。谢谢
编辑; 已经试过了。
add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 ); function custom_add_order_item_meta(
$item_id, $values, $cart_item_key ) { // Get cart item custom data and update order item meta if( isset( $values['custom_data'] ) ) {
wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] ); } }
add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 );
function custom_add_order_item_meta( $item_id, $values, $cart_item_key ) {
$custom_field_value = $custom_field_value;
if ( ! empty( $custom_field_value ) ){
wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
挂钩 woocommerce_add_order_item_meta
被 woocommerce_checkout_create_order_line_item
替换,因此使用您的代码 (假设购物车对象包含您的自定义购物车商品数据):
add_action('woocommerce_checkout_create_order_line_item', 'save_custom_order_item_meta_data', 10, 4 );
function save_custom_order_item_meta_data( $item, $cart_item_key, $values, $order ) {
if( isset( $values['custom_data']['label'] ) && isset( $values['custom_data']['value'] ) ) {
$item->update_meta_data( $values['custom_data']['label'], $values['custom_data']['value'] );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
相关: