Woocommerce:根据产品标题中的单词隐藏属性

时间:2018-09-30 00:50:49

标签: php wordpress woocommerce attributes hide

我试图根据产品标题在woocommerce中隐藏产品属性。目前,我有删除基于类别的属性的代码。它可以正常工作,但是我宁愿使用title和strpos数组。

这是允许我根据类别删除属性的代码

add_action( 'wp', 'remove_product_content11' );
function remove_product_content11() {


if ( has_term( array('Flush Mount', 'Semi Flush'), 'product_cat' ) ) {
function mycode_hide_attributes_from_additional_info_tabs( $attributes,  $product ) {

$hidden_attributes = [
'pa_item-length-or-depth',
'pa_item-minimum-height',

];
foreach ( $hidden_attributes as $hidden_attribute ) {
if ( ! isset( $attributes[ $hidden_attribute ] ) ) {
continue;
}
$attribute = $attributes[ $hidden_attribute ];
$attribute->set_visible( false );

}

return $attributes;
}

add_filter( 'woocommerce_product_get_attributes',   'mycode_hide_attributes_from_additional_info_tabs', 20, 2 );
}
}

我只想更改此代码,因此它使用strpos搜索产品标题,而不是使用类别。

1 个答案:

答案 0 :(得分:0)

检查此代码,告诉我是否有帮助。

add_action( 'wp', 'remove_product_content11' );
function remove_product_by_strpos_title() {
  global $post;
  // check if its a product page, so the code is not executed for every page
  // and check if title contains 'my-title'
  if ( is_product() && strpos('my-title', $post->post_title) ) {
    function mycode_hide_attributes_from_additional_info_tabs( $attributes,  $product ) {

        $hidden_attributes = [
          'pa_item-length-or-depth',
          'pa_item-minimum-height',

        ];
        foreach ( $hidden_attributes as $hidden_attribute ) {
            if ( ! isset( $attributes[ $hidden_attribute ] ) ) {
                continue;
            }
            $attribute = $attributes[ $hidden_attribute ];
            $attribute->set_visible( false );

        }

        return $attributes;
    }

    add_filter( 'woocommerce_product_get_attributes',   'mycode_hide_attributes_from_additional_info_tabs', 20, 2 );
  }
}