我正在为我的 wordpress 网站使用Dokan和Woocommerce插件。
我希望所有供应商将他们的产品运送到商店地址而不是客户地址。之后,我想将产品从商店运送到他们的地址。
但总是向供应商显示送货地址,是客户地址而不是我的地址。我在 Dokan 禁用了供应商送货,但送货地址仍然是客户地址,而不是我的。
如何将向供应商显示的送货地址更改为我的商店地址?我检查了 Woocommerce 设置并没有找到任何解决方案。我应该更改一些代码还是安装更多插件?
非常感谢
我正在为我的 wordpress 网站使用Dokan和Woocommerce插件。
我希望所有供应商将他们的产品运送到商店地址而不是客户地址。之后,我想将产品从商店运送到他们的地址。
但总是向供应商显示送货地址,是客户地址而不是我的地址。我在 Dokan 禁用了供应商送货,但送货地址仍然是客户地址,而不是我的。
如何将向供应商显示的送货地址更改为我的商店地址?我检查了 Woocommerce 设置并没有找到任何解决方案。我应该更改一些代码还是安装更多插件?
非常感谢
Dokan 供应商的用户角色是“供应商”,因此您可以定位此用户角色并:
编码:
// Utility function that outputs the shop base address in an array
function get_shop_base_address() {
$country_state = explode( ':', get_option( 'woocommerce_default_country' ) );
return array(
'address1' => get_option( 'woocommerce_store_address' ),
'address2' => get_option( 'woocommerce_store_address_2' ),
'city' => get_option( 'woocommerce_store_city' ),
'postcode' => get_option( 'woocommerce_store_postcode' ),
'state' => $country_state[0],
'country' => isset($country_state[1]) ? $country_state[1] : '',
);
}
// Set vendor shipping address to the shop base in Cart and checkout
add_action( 'template_redirect', 'set_vendor_shipping_address', 10 );
function set_vendor_shipping_address() {
if( ( is_cart() || ( is_checkout() && ! is_wc_endpoint_url() ) ) &&
if( current_user_can( 'vendor' ) ) {
// Get shop base country/state
$address = get_shop_base_address();
// Set customer shipping
WC()->customer->set_shipping_address_1( $address['address1'] );
WC()->customer->set_shipping_address_2( $address['address2'] );
WC()->customer->set_shipping_city( $address['city'] );
WC()->customer->set_shipping_postcode( $address['postcode'] );
WC()->customer->set_shipping_state( $address['state'] );
WC()->customer->set_shipping_country( $address['country'] );
}
}
// Save vendor order shipping address to the shop base
add_action( 'woocommerce_checkout_create_order', 'save_vendor_shipping_address', 10, 2 );
function save_vendor_shipping_address( $order, $data ) {
if( current_user_can( 'vendor' ) ) {
// Get shop base country/state
$address = get_shop_base_address();
// Set customer shipping
$order->set_shipping_address_1( $address['address1'] );
$order->set_shipping_address_2( $address['address2'] );
$order->set_shipping_city( $address['city'] );
$order->set_shipping_postcode( $address['postcode'] );
$order->set_shipping_state( $address['state'] );
$order->set_shipping_country( $address['country'] );
}
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。