WooCommerce:获取并设置送货和账单地址的邮政编码

Rao*_*Rao 11 wordpress-plugin woocommerce

如何在woocommerce中设置/获取邮政编码(Zip-code)?这有功能吗?

即,我可以通过任何功能设置邮政编码吗?

我还想知道,如果用户没有登录,如何使用我的数据(例如546621)填充此字段?

Rao*_*Rao 12

您可以执行以下操作来获取/设置结算/运输邮政编码,

设置值,

$customer = new WC_Customer();
$customer->set_postcode('123456');     //for setting billing postcode
$customer->set_shipping_postcode('123456');    //for setting shipping postcode
Run Code Online (Sandbox Code Playgroud)

如果您只想获取邮政编码,可以从用户元表本身获取,

$shipping_postcode = get_user_meta( $current_user->ID, 'shipping_postcode', true );
$billing_postcode = get_user_meta( $current_user->ID, 'billing_postcode', true );
Run Code Online (Sandbox Code Playgroud)


Kil*_*ter 7

您可以使用提供此功能的 WC_Customer 类。它加载在 Woocommerce 类中。此信息存储在当前会话中。

function set_shipping_zip() {
    global $woocommerce;

    //set it
    $woocommerce->customer->set_shipping_postcode( 12345 );
    $woocommerce->customer->set_postcode( 12345 );

    //get it
    $woocommerce->customer->get_shipping_postcode();    
    $woocommerce->customer->get_postcode();
}
Run Code Online (Sandbox Code Playgroud)

此类的完整文档:http : //docs.woothemes.com/wc-apidocs/class-WC_Customer.html

希望这可以帮助。

  • 我还想指出,这个方法只设置会话变量中的数据,而不是存储在数据库中。如果你想在数据库中设置它,你必须在 `wp_usermeta` 表中设置 `billing_postcode` 和 `shipping_postcode`。 (3认同)

jmi*_*ler 5

谢谢@饶!我已经花了好几个小时了……我能够接受您的代码,并使用它来提取用户的整个地址-这样我就可以使用每个地址字段来预先填充我在其他地方创建的地址表单。

$fname = get_user_meta( $current_user->ID, 'first_name', true );
$lname = get_user_meta( $current_user->ID, 'last_name', true );
$address_1 = get_user_meta( $current_user->ID, 'billing_address_1', true ); 
$address_2 = get_user_meta( $current_user->ID, 'billing_address_2', true );
$city = get_user_meta( $current_user->ID, 'billing_city', true );
$postcode = get_user_meta( $current_user->ID, 'billing_postcode', true );

echo $fname . "<BR>";
echo $lname . "<BR>";
echo $address_1 . "<BR>";
echo $address_2 . "<BR>";
echo $city . "<BR>";
echo $postcode . "<BR>";
Run Code Online (Sandbox Code Playgroud)