Php Woo commerce get_shipping_method_class_names()未获取所有活动类
我正在创建我的自定义word press插件,尝试在我的项目中获取所有活动类或活动配送(如FedEx、UPS、USPS)。当我尝试使用以下代码获取时,这三个插件都处于活动状态:Php Woo commerce get_shipping_method_class_names()未获取所有活动类,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在创建我的自定义word press插件,尝试在我的项目中获取所有活动类或活动配送(如FedEx、UPS、USPS)。当我尝试使用以下代码获取时,这三个插件都处于活动状态: $shipping_methods_classes = WC()->shipping->get_shipping_method_class_names(); echo "<pre>"; print_r($shipping_methods_classes);die; 当我把这段代码写到heade
$shipping_methods_classes = WC()->shipping->get_shipping_method_class_names();
echo "<pre>";
print_r($shipping_methods_classes);die;
当我把这段代码写到header.php中时,它工作得很好,但是在我的自定义插件上并没有得到所有的结果。它是由--
你试过在
woocommerce\u加载的
hook上运行代码吗?我没有试过用它,我们怎么能用它呢?没关系,现在看起来不相关了。你确定你有另一个有效的运输方式吗?好的,谢谢,我得到了解决方案…请发布你的解决方案给未来的读者。另外,在重读你的问题时,如果你无法在你的插件中获得活动信息,那么我必须返回woocommerce\u loaded
。加载所有插件后,header.php
模板会很好地加载,因此毫无疑问,WooCommerce已经完全加载,如果您直接在插件文件中调用它们,您可以var_dump()
模板中的内容可能不会出现,除非函数(理想情况下是整个插件)在WC完全加载之前不会加载。
Array
(
[flat_rate] => WC_Shipping_Flat_Rate
[free_shipping] => WC_Shipping_Free_Shipping
[local_pickup] => WC_Shipping_Local_Pickup
[0] => wf_fedex_woocommerce_shipping_method
)
add_action('plugins_loaded', 'woocommerce_shipping_init');
function woocommerce_shipping_init() {
if (class_exists('WC_Shipping')) {
$shipping = new WC_Shipping();
$shipping_classes = array();
/* this return all services */
$shipping_classes = $shipping->get_shipping_method_class_names();
echo "<pre>";
print_r($shipping_classes);die;
} else {
add_action('admin_notices', 'woocomeerce_plugin_activation_error');
}
}
Array
(
[flat_rate] => WC_Shipping_Flat_Rate
[free_shipping] => WC_Shipping_Free_Shipping
[local_pickup] => WC_Shipping_Local_Pickup
[0] => wf_fedex_woocommerce_shipping_method
[1] => WF_Shipping_UPS
[2] => WF_Shipping_USPS
)