Рубрики
Wordpress

Как сделать произвольную вкладк WooCommerce

Все, кто делают интернет магазин на WordPress, прекрасно знают плагин WooCommerce, для создания интернет магазина. Во время работы у меня возникла необходимость создать дополнительную вкладку на странице товара. Для этих целей есть масса плагинов, но, либо в плагинах много лишнего, либо требуется какое-то не стандартное решение. Возможно вам просто нужно создать вкладку с простым контентом, без каких-либо настроек.

произвольная вкладка

Код, который мы напишем, можно вставить в файл functions.php вашей активной темы. Он располагается непосредственно в папке темы, которую Вы используете.

Для того, что бы добавить произвольную закладку, используем следующий код.

Код, добавляющий произвольную вкладку к описанию товара WooCommerce:

function woo_new_product_tab( $tabs )
{
 // Добавление новой вкладки
 $tabs['test_tab_1'] = array(
 'title' => __( 'New Product Tab 1', 'woocommerce' ),
 'priority' => 50,
 'callback' => 'woo_new_product_tab_content_2',
 );
 // Добавление новой вкладки
 $tabs['test_tab_2'] = array(
 'title' => __( 'New Product Tab 2', 'woocommerce' ),
 'priority' => 50,
 'callback' => 'woo_new_product_tab_content_2',
 );

 return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );

// Содержимое первой произвольной вкладки
function woo_new_product_tab_content_1()
{
 // получение значения из произвольного поля custom_field_name
 $custom_field_value = get_post_meta(get_the_ID(), 'custom_field_name' );
 $out = '<h2>'. __( 'New Product Tab', 'woocommerce' ) .'</h2>'.
 '<p>'. __( 'Here is your new product tab.', 'woocommerce' ) .'</p>'.
 '<p>'. __( 'Data from custom field: ', 'woocommerce' ). $custom_field_value .'</p>';
 echo $out;
}

// Содержимое второй произвольной вкладки
function woo_new_product_tab_content_2()
{
 echo '<p>Контент второй произвольной вкладки.</p>';
}

В качестве содержимого вкладки можно использовать данные из произвольных полей, как показано в примере выше.

Сперва мы получаем значение произвольного поля, которое определено для данного поста, а затем выводим его.

Подробнее о произвольных полях( custom fields ) читайте тут.