Все, кто делают интернет магазин на 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 ) читайте тут.