Hide For Specifi c Страницы WooCommerce Описание & Дополнительная информация и вкладки отзывов с помощью пользовательских полей Wordpress - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь создать систему, с помощью которой я могу удалить вкладки продукта, но только на отдельных страницах продукта, и мне нужно определить, на каких страницах их вкладки продукта будут скрыты с помощью пользовательских полей WordPress. Имя настраиваемого поля, которое я хочу назвать: «hide_product_page_tabs» и определяющие значения должны быть «1» или «0» для «да» или «нет».

Я создал новое настраиваемое поле Wordpress в выбранном продукте woocommerce. страниц.

Имя настраиваемого поля: hide_product_tabs

Значение настраиваемого поля: определено «1» в настраиваемом поле для запуска кода или что-либо еще, например «0», чтобы отключить его.

Я поместил в функции моей дочерней темы. php:

/* WooCommerce hide product page tabs - hide_product_tabs */
/**
 * Remove existing tabs from single product pages.
 * https://gist.github.com/mikejolley/c75083db7f6110cbdbe4808e3af36fe3
 */
 function remove_woocommerce_product_tabs( $tabs ) {
    unset( $tabs['description'] );
    unset( $tabs['reviews'] );
    unset( $tabs['additional_information'] );
    return $tabs;
}
function hide_product_page_tabs() {
        global $post;
        $product_id = $post->ID;
        $HideProductTabsValue =  get_post_meta($product_id,'hide_product_tabs',true);
        if (strpos($HideProductTabsValue, '1') !== false) {
        return add_filter( 'woocommerce_product_tabs', 'remove_woocommerce_product_tabs', 98 );
        }
}       
add_action('woocommerce_single_product_summary','hide_product_page_tabs');

Любые советы приветствуются!

1 Ответ

0 голосов
/ 30 марта 2020

На основании вашего описания, не видя код, который вы используете для этого, вы можете просто использовать следующее

function hide_product_tabs( $tabs ) {

    // Get the global product object
    global $product;

    // Get product id
    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

    $HideProductTabsValue = get_post_meta( $product_id, 'hide_product_tabs', true);

    // 1 = true
    if( $HideProductTabsValue == true ) {
        unset( $tabs['description'] ); // (Description tab)  
        unset( $tabs['reviews'] ); // (Reviews tab)
        unset( $tabs['additional_information'] ); // (Additional information tab)       
    }

    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'hide_product_tabs', 98 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...