【发布时间】:2018-07-29 13:30:02
【问题描述】:
如果访问者在 Woocommerce 结帐页面上处于特定运输选项中,我正在尝试向页面正文添加一个类。我已经完成了以下操作,但它没有添加课程?有人可以帮忙吗?
add_filter( 'body_class', 'bbloomer_wc_product_cats_css_body_class' );
function bbloomer_wc_product_cats_css_body_class( $classes, $available_gateways ){
global $woocommerce;
$chosen_titles = array();
$available_methods = $woocommerce->shipping->get_packages();
$chosen_rates = ( isset( $woocommerce->session ) ) ? $woocommerce->session->get( 'chosen_shipping_methods' ) : array();
foreach ($available_methods as $method)
foreach ($chosen_rates as $chosen) {
if( isset( $method['rates'][$chosen] ) ) $chosen_titles[] = $method['rates'][ $chosen ]->label;
}
if( in_array( 'Delivery price on request', $chosen_titles ) ) {
$custom_terms = get_the_terms(0, 'product_cat');
if ($custom_terms) {
foreach ($custom_terms as $custom_term) {
$classes[] = 'delivery-not-available';
}
}
}
return $classes;
}
【问题讨论】:
-
不确定其余的,因为我不熟悉 WC 的那一面,但
$custom_terms = get_the_terms(0, 'product_cat');这条线在理论上对我来说似乎是错误的,因为它试图从一个帖子中获取 product_cat 条款ID 为 0 - 因为 WP 从 1 开始编号,所以它永远不会存在。您希望从哪里获得 product_cat 条款?
标签: php jquery css wordpress woocommerce