WooCommerce:如何保存客户地址详细信息

时间:2017-03-31 02:42:58

标签: php wordpress plugins woocommerce

我正在为WooCommerce写一个Wordpress插件 我想更新客户的送货地址 这是我的代码:

$woo_customer = WC()->customer;
$woo_customer->set_location( $address->country,
                             $address->state, 
                             $address->postCode, 
                             $address->city );
$woo_customer->set_address( $address->street1 );
$woo_customer->set_address_2( $address->street2 );
$woo_customer->save_data();

一切都运行得很好,如果我检查说国家值,它似乎已保存:

error_log( $address->country ); // outputs "United Kingdom"  
error_log( $woo_customer->get_country() ); // outputs "United Kingdom"

但是,当我在Wordpress管理员(用户>所有用户>(我的用户))中查看此用户时,他们的客户送货地址详细信息都是空白的 - 什么都没有保存。

如何告诉WooCommerce / Wordpress使用我输入的这些详细信息更新用户送货地址?

1 个答案:

答案 0 :(得分:1)

客户只是附在订单上的用户,需要使用记录hereupdate_user_meta();功能向用户进行更新,以便更改显示在(用户>所有用户>(您的用户)):

$woo_customer = wp_get_current_user();
$metaKeyVals = array(
    'shipping_address_1' => $address->street1,
    'shipping_address_2' => $address->street2,
    'shipping_country' => $address->country,
    'shipping_state' => $address->state,
    'shipping_postcode' => $address->postCode,
    'shipping_city' => $address->city
);
foreach ($metaKeyVals as $key => $val) {
    update_user_meta($woo_customer->ID, $key, $val);
}