我正在尝试向 Woocommerce Shipping选项卡和其中的Shipping Zones部分添加一个选择字段,同时创建一个新的运输区域。我在寻找解决方案时在 Woocommerce 的官方文档中找到了这个。
到目前为止我尝试过的是:
// Fires on 'plugins_loaded' action of WordPress
public function plugins_loaded_action() {
add_filter( 'woocommerce_get_settings_shipping', array( $this, 'shipping_zone_settings_add_city_field' ), 10, 2 );
}
public function shipping_zone_settings_add_city_field( $settings, $current_section ) {
echo 'this runs only for shipping_options section';
/**
* Check the current section for shipping zone
*/
if( $current_section === 'shipping_zones' ) {
// Add city field to settings
$settings[] = array(
array(
'name' => __( 'Zone City', 'woocommerce' ),
'type' => 'title',
'desc' => __( 'Specify city names for current shipping region', 'woocommerce' ),
'id' => 'shipping_zones',
),
array(
'name' => __( 'Zone Cities', 'woocommerce' ),
'desc_tip' => __( 'Add all cities you want to be apply this shipping region for.', 'woocommerce' ),
'id' => 'wc_shipping_zone_cities',
'type' => 'multiselect',
'desc' => __( 'Cities for this shipping region', 'woocommerce' ),
),
array(
'type' => 'sectionend',
'id' => 'shipping_zones',
),
);
}
return $settings;
}
但是挂钩过滤器功能仅针对shipping_options
部分运行,因为我echo
只能在该部分的顶部看到输出。
用于运输设置的 Woocommerce 类具有这种获取设置的方法。
显然,我在这里做错了什么,可能是挂钩到不正确的过滤器或其他任何东西。请帮忙。