【问题标题】:Displaying product custom fields values in the order once processed处理后在订单中显示产品自定义字段值
【发布时间】:2017-06-24 11:51:49
【问题描述】:

在 woocommerce 上,我使用以下代码在购物车和结帐时呈现一些产品自定义字段:

add_filter( 'woocommerce_get_item_data', 'rendering_meta_field_on_cart_and_checkout', 10, 2 );

function rendering_meta_field_on_cart_and_checkout( $cart_data, $cart_item ) {
    $custom_items = array();

    if( !empty( $cart_data ) ) {
        $custom_items = $cart_data;
    }
    if( isset( $cart_item['wccpf_enter_product_id'] ) ) {

        $diamond = $cart_item['wccpf_enter_product_id'];

        $pacolor = get_the_terms($diamond, 'pa_color');
        foreach ( $pacolor  as $pacolor  ) {
           $color= $pacolor ->name;
        }


        $custom_items[] = array( "name" => "color", "value" => $color);
    }
    return $custom_items;
}

如何在订单中显示自定义产品字段 wccpf_enter_product_id' 值?

谢谢。

【问题讨论】:

    标签: php wordpress woocommerce checkout orders


    【解决方案1】:

    您可以使用 woocommerce_add_order_item_meta 操作挂钩中挂钩的自定义函数来实现此目的。

    您需要首先在您的产品中添加一个属性,以便为您的自定义字段值获取一个“可读的干净标签”,该值将显示为订单项元数据。

    为此,您必须先创建一个属性,然后在您的产品中将其设置为任何值(因为您将在下面的代码中替换此值)。

    请参阅HERE 对该过程的更多解释……

    您必须在我的代码中将 'custom_field_key' 替换为您可以在 wp_woocommerce_order_itemmeta MySQL 表中找到的特定自定义键,以获得相应的项目 ID您的特定订单 ID。
    要查找订单对应的item ID,您可以在wp_woocommerce_order_items MySQL 表中搜索订单ID...

    您还必须设置正确的属性 slug 而不是 'pa_your_attribute' 以在您的订单中显示此自定义字段值的正确标签文本。
    (请参阅下面的其他类似答案参考)。

    所以你的代码会是这样的:

    // ADD THE INFORMATION AS META DATA SO THAT IT CAN BE SEEN AS PART OF THE ORDER
    add_action('woocommerce_add_order_item_meta','add_and_update_values_to_order_item_meta', 1, 3 );
    function add_and_update_values_to_order_item_meta( $item_id, $item_values, $item_key ) {
    
        // Getting your custom product ID value from order item meta
        $custom_value = wc_get_order_item_meta( $item_id, 'custom_field_key', true );
    
        // Here you update the attribute value set in your simple product
        wc_update_order_item_meta( $item_id, 'pa_your_attribute', $custom_value );
        }
    }
    

    代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

    这应该可以工作


    相关答案:

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      相关资源
      最近更新 更多