Php 获取Woocommerce 3中的所有装运类
我一直无法解决这个问题,但我忍不住觉得我错过了一些简单的东西 我正在开发一个WooCommerce插件,它应该在其管理设置页面上提供一个发货类列表。另一个问题的答案中建议的以下代码表明,以下代码应起作用:Php 获取Woocommerce 3中的所有装运类,php,wordpress,woocommerce,shipping,custom-taxonomy,Php,Wordpress,Woocommerce,Shipping,Custom Taxonomy,我一直无法解决这个问题,但我忍不住觉得我错过了一些简单的东西 我正在开发一个WooCommerce插件,它应该在其管理设置页面上提供一个发货类列表。另一个问题的答案中建议的以下代码表明,以下代码应起作用: $shipping = new \WC_Shipping(); $shipping_classes = $shipping->get_shipping_classes(); var_dump($shipping_classes); die(); 不幸的是,输出是
$shipping = new \WC_Shipping();
$shipping_classes = $shipping->get_shipping_classes();
var_dump($shipping_classes);
die();
不幸的是,输出是一个空数组
我正在使用Wordpress 4.9.5和WooCommerce 3.3.5。谢谢你的帮助
更新
我的问题与这里概述的完全相同:
并提供了一个工作环境。但是,我不认为这是一个解决方案。要获得所有装运类别,您只需要以下几项:
$shipping_classes = get_terms( array('taxonomy' => 'product_shipping_class', 'hide_empty' => false ) );
测试和工作。这将为您提供一个所有装运类别的WP\u Term
对象数组
在Woocommerce中,配送类位于product\u shipping\u 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文件
用法(测试示例):
$shipping_classes=wc_get_shipping_classes();//上船运课
回声';打印(装运类);回显“”;//测试原始输出
您是要获取所有的配送类,还是配送方法?另外,您是否尝试过删除WC_Shipping()前面的斜杠代码>?这在我的情况下实际上不起作用。我已经试过了,由于某些原因,它只返回一个航运类,而不是所有航运类。我在原来的问题中添加了一个与另一个问题的链接,我发现这个问题更准确地提出了确切的问题。我还提供了一个解决方案,但我认为这不是一个合适的解决方案。@mike.bronner非常奇怪,因为所有的装运类别都是Woocommerce中“product\u shipping\u class”自定义分类法中的术语。因此,我更新了我的答案,添加了第二种方式……试试看。感谢您的努力。:)我很乐意循环使用get_terms()
(没有任何参数)的结果并过滤掉我的结果。我很有信心,某个地方有一个bug或冲突正在肆虐|
$shipping_classes = wc_get_shipping_classes(); // Get Shipping Classes
echo '<pre>'; print_r($shipping_classes); echo '</pre>'; // Test raw output