【问题标题】:How to get custom fields values from WooCommerce orders如何从 WooCommerce 订单中获取自定义字段值
【发布时间】:2020-10-14 08:48:04
【问题描述】:

我检查了类似的问题,但无法解决问题。

这是我目前的代码:

// Add VAT and SSN fields in billing address display
add_filter( 'woocommerce_order_formatted_billing_address', 'custom_add_vergi_dairesi_vergi_no_formatted_billing_address', 10, 2 );
function custom_add_vergi_dairesi_vergi_no_formatted_billing_address( $fields, $order ) {
    $fields['vergi_dairesi'] = $order->billing_vergi_dairesi;
    $fields['vergi_no'] = $order->billing_vergi_no;

    return $fields;
}

它给了我这个错误:“billing_vergi_dairesi 被错误地调用。订单属性不应该直接访问”

所以我将$order->billing_vergi_dairesi;$order->billing_vergi_no; 替换为$order->get_billing_vergi_dairesi();$order->get_billing_vergi_no(); 然后我得到:“未捕获的错误:调用未定义的方法”

我做错了什么?

【问题讨论】:

    标签: php wordpress woocommerce metadata orders


    【解决方案1】:

    从 WooCommerce 3 开始,您需要使用 WC_Data 方法 get_meta() 和正确的元键从 WC_Order 对象中获取自定义字段值,例如:

    // Add VAT and SSN fields in billing address display
    add_filter( 'woocommerce_order_formatted_billing_address', 'custom_add_vergi_dairesi_vergi_no_formatted_billing_address', 10, 2 );
    function custom_add_vergi_dairesi_vergi_no_formatted_billing_address( $fields, $order ) {
        $fields['vergi_dairesi'] = $order->get_meta('billing_vergi_dairesi');
        $fields['vergi_no']      = $order->get_meta('billing_vergi_no');
    
        return $fields;
    }
    

    或者可能以下划线开头,而不是像:

    // Add VAT and SSN fields in billing address display
    add_filter( 'woocommerce_order_formatted_billing_address', 'custom_add_vergi_dairesi_vergi_no_formatted_billing_address', 10, 2 );
    function custom_add_vergi_dairesi_vergi_no_formatted_billing_address( $fields, $order ) {
        $fields['vergi_dairesi'] = $order->get_meta('_billing_vergi_dairesi');
        $fields['vergi_no']      = $order->get_meta('_billing_vergi_no');
    
        return $fields;
    }
    

    它应该可以工作。

    wp_postmeta 表中检查billing_vergi_dairesibilling_vergi_no 是正确的元键。

    见:How to get WooCommerce order details

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 2018-02-06
      • 2023-03-22
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      相关资源
      最近更新 更多