php - Woocommerce Order Again 不会复制自定义字段

标签 php wordpress woocommerce

我已经成功地编写了我的插件代码以向 woocommerce 产品添加额外的自定义字段。这从购物车到完成订单一直有效。转到我的帐户并查看过去的订单,自定义字段显示正确。

但是,当我选择对过去的订单点击“再次订购”时,新购物车不包含自定义字段及其值。

这是我目前必须尝试的:

// order again
add_filter( 'woocommerce_order_again_cart_item_data', 'woocommerce_order_again_cart_item_data', 10, 3 );

function woocommerce_order_again_cart_item_data($cart_item_meta, $product, $order){
    global $woocommerce;
    // Disable validation
    remove_filter( 'woocommerce_add_to_cart_validation', array( $this, 'validate_add_cart_item' ), 10, 3 );

    if ( ! array_key_exists( 'item_meta', $cart_item_meta ) || ! is_array( $cart_item_meta['item_meta'] ) )
        $cart_item_meta['item_meta'] = array();
    foreach ( array( 'jhpc_toppings', 'jhpc_sauce', 'jhpc_toppings_half', 'jhpc_sauce_half', 'jhpc_garnish' ) as $key )
         $cart_item_meta['item_meta'][$key] = $product['item_meta'][$key];
    return $cart_item_meta;
}

最佳答案

替换

$cart_item_meta['item_meta'][$key] = $product['item_meta'][$key];

$cart_item_meta[$key] = $product[$key];

否则,为什么要删除验证?

关于php - Woocommerce Order Again 不会复制自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25527692/

相关文章:

wordpress - 为本地交付启用多个选项Woocommerce

php - 在 Woocommerce 3 中检索自定义订单项元数据值

php - 将数据从一种形式自动填充到另一种形式,托管在另一个站点上

wordpress - 如何处理/管理自定义图像?

php - 哪个版本的 Laravel 使用 LTS 或最新版本 - 至少 5 年的开发人员支持 promise ?

php - 如何使用 get_user_meta() 从数组中获取数据

html - 如何为某种语言使用 dir 属性?

mysql - 寻找一些建议来完成针对 3 个不同表的自定义 mysql 查询

php - 如何创建自定义 MySQL 查询来显示 WordPress 帖子(无 wp_query)?

php - Composer : file_put_contents(./composer.json):无法打开流:权限被拒绝