Zarządzanie zakładkami na stronie produktu – Woocommerce

Za pomocą filtrów możemy łatwo globalnie zarządzać zakładkami na podstronach produktów – usuwać poszczególne zakładki oraz dodawać własne.

Ukrywanie danej zakładki

Do ukrycia zakładki należy posłużyć się filtrem woocommerce_product_tabs w functions.php naszego szablonu:

add_filter('woocommerce_product_tabs', 'wpgeek_remove_woo_tabs', 99);
function wpgeek_remove_woo_tabs($tabs)
{
    unset($tabs['additional_information']);
    return $tabs;
}

Pozwoli to nam na usunięcie globalnie zakładki „dodatkowe informacje”. Możliwe warianty to: additional_information, description oraz reviews.

add_filter('woocommerce_product_tabs', 'wpgeek_remove_woo_tabs', 99);
function wpgeek_remove_woo_tabs($tabs)
{
    unset($tabs['additional_information']);
    unset($tabs['description']);
    unset( $tabs['reviews'] );
    return $tabs;
}

Dodawanie własnej zakładki

Do tej czynności należy użyć kodu…

add_filter('woocommerce_product_tabs', 'wpgeek_new_woo_product_tab');
function wpgeek_new_woo_product_tab($tabs)
{
    $tabs['dodatkowa_galeria'] = array(
        'title' => 'Dodatkowa galeria',
        'priority' => 50,
        'callback' => 'wpgeek_new_woo_product_tab_content'
    );
    return $tabs;
}

… gdzie nadamy nazwę zakładki oraz określimy element callback, czyli funkcję zawierającą treść zakładki:

function wpgeek_new_woo_product_tab_content()
{
    // Treść zakładki 
    echo 'Dodatkowe zdjęcia';
    
}

Automatyczna zmiana języka w Disqus

Jeśli do integracji Disqus z WordPress używamy wtyczki (np. Disqus Comment System) to język systemu narzucamy jest z góry przez ustawienia Disqus. Do zmiany języka potrzebujemy określenia kodu językowego w zmiennej JavaScript:

<script type='text/javascript'>

var disqus_config = function () { 
  this.language = "en";
};

</script>

Kod umieszczamy wcześniej niż ładowany jest Disqus, najlepiej zaraz za otwierającym znacznikiem <body>. W zmiennej oczywiście możemy zadeklarować  lokalny język naszego Wordpess, np. w taki sposób:

<script type='text/javascript'>

var disqus_config = function () { 
  this.language = "<?php echo explode('_', get_locale())[0];?>";
};

</script>