我一直无法破解这个坚果,但不禁觉得我错过了一些简单的东西。
我正在开发一个WooCommerce插件,该插件应在其管理设置页面上提供发货类列表。在另一个问题的答案中建议的以下代码表明以下代码应该有效:
$shipping = new \WC_Shipping();
$shipping_classes = $shipping->get_shipping_classes();
var_dump($shipping_classes);
die();
不幸的是输出是一个空数组。
我正在使用Wordpress 4.9.5和WooCommerce 3.3.5。谢谢你的帮助!
更新 我有与此处概述的完全相同的问题: get_terms() returns Invalid Taxonomy并提供了解决方法。但是,我觉得这不是一个解决方案。
答案 0 :(得分:2)
要获得所有送货课程,您只需要以下内容:
$shipping_classes = get_terms( array('taxonomy' => 'product_shipping_class', 'hide_empty' => false ) );
经过测试和工作。这将为您提供所有货运类的WP_Term
个对象数组。
在Woocommerce中,货运类属于
product_shipping_class
自定义分类。
或者您可以将此自定义函数与简单的SQL查询一起使用:
function wc_get_shipping_classes(){
global $wpdb;
$return $wpdb->get_results( "
SELECT * FROM {$wpdb->prefix}terms as t
INNER JOIN {$wpdb->prefix}term_taxonomy as tt ON t.term_id = tt.term_id
WHERE tt.taxonomy LIKE 'product_shipping_class'
" );
}
代码放在活动子主题(或活动主题)的function.php文件中。
USAGE(测试示例):
$shipping_classes = wc_get_shipping_classes(); // Get Shipping Classes
echo '<pre>'; print_r($shipping_classes); echo '</pre>'; // Test raw output