Woocommerce: скрыть атрибут на основе слова в названии продукта - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь скрыть атрибуты товара в 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 );
}
}

Iпросто хотел бы изменить этот код, чтобы он использовал strpos для поиска по названию продукта вместо использования категории.

1 Ответ

0 голосов
/ 30 сентября 2018

проверьте этот код, скажите, поможет ли он.

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 );
  }
}
...