我希望客户能够在将产品添加到购物车之前设置他们的邮政编码。
然后保存此邮政编码并用于定义可用的交付方式。
我已经实现了以下功能,但它并不总是有效,我不确定应该使用哪些 Woocommerce 方法以及它们之间有什么区别:
WC()->customer->set_shipping_postcode(...)
和WC()->customer->get_shipping_postcode()
WC()->session->set('shipping_postcode', ...)
和WC()->session->get('shipping_postcode')
update_user_meta(get_current_user_id(), 'shipping_postcode', ...)
和get_user_meta(get_current_user_id(), 'shipping_postcode', true)
此外,我正在保存账单和送货的邮政编码,因为我不知道用户之前是否下过订单并选择将其交付到与账单地址不同的送货地址。
function getDeliveryZipcode()
{
$shipping_postcode = WC()->customer->get_shipping_postcode();
$billing_postcode = WC()->customer->get_billing_postcode();
return $shipping_postcode ? $shipping_postcode : $billing_postcode;
}
function setDeliveryZipcode()
{
$zipcode = $_GET['zipcode'];
// ...
WC()->customer->set_shipping_postcode(wc_clean($zipcode));
WC()->customer->set_billing_postcode(wc_clean($zipcode));
}
九州编程