Добавление динамической настраиваемой вкладки для продуктов WooCommerce - PullRequest
0 голосов
/ 27 февраля 2019

Я ищу решение для добавления настраиваемой вкладки для моей страницы продукта в WooCommerce.Я нашел уже какое-то решение, как этот фрагмент кода ниже.Но все это для статического содержимого.Можно ли создать настраиваемую вкладку для страниц продукта и где я могу настроить содержимое по отдельности на странице продукта администратора?Я знаю, что для этого есть плагины, но я пытаюсь найти решение с помощью плагина.

add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tabs' );
function woo_custom_product_tabs( $tabs ) {

    // 1) Removing tabs

    unset( $tabs['description'] );              // Remove the description tab
    // unset( $tabs['reviews'] );               // Remove the reviews tab
    unset( $tabs['additional_information'] );   // Remove the additional information tab


    // 2 Adding new tabs and set the right order

    //Attribute Description tab
    $tabs['attrib_desc_tab'] = array(
        'title'     => __( 'Desc', 'woocommerce' ),
        'priority'  => 100,
        'callback'  => 'woo_attrib_desc_tab_content'
    );

    // Adds the qty pricing  tab
    $tabs['qty_pricing_tab'] = array(
        'title'     => __( 'Quantity Pricing', 'woocommerce' ),
        'priority'  => 110,
        'callback'  => 'woo_qty_pricing_tab_content'
    );

    // Adds the other products tab
    $tabs['other_products_tab'] = array(
        'title'     => __( 'Other Products', 'woocommerce' ),
        'priority'  => 120,
        'callback'  => 'woo_other_products_tab_content'
    );

    return $tabs;

}

// New Tab contents

function woo_attrib_desc_tab_content() {
    // The attribute description tab content
    echo '<h2>Description</h2>';
    echo '<p>Custom description tab.</p>';
}
function woo_qty_pricing_tab_content() {
    // The qty pricing tab content
    echo '<h2>Quantity Pricing</h2>';
    echo '<p>Here\'s your quantity pricing tab.</p>';
}
function woo_other_products_tab_content() {
    // The other products tab content
    echo '<h2>Other Products</h2>';
    echo '<p>Here\'s your other products tab.</p>';
}

1 Ответ

0 голосов
/ 08 мая 2019

Добавление пользовательской вкладки возможно через фильтр woocommerce_product_tabs.
Для создания настраиваемого поля данных для ваших продуктов я рекомендую использовать ACF .

1.Добавить новое поле

  • Вам необходимо добавить новое поле для продуктов и добавить параметр имени, например custom_detail.(Мы используем это в коде внутри функции get_field).Вы можете изменить его тип, например textarea или WYSIWYG .В разделе ролей установите Тип сообщения |равно |product .
  • Теперь на экране редактирования товара вы можете найти новое поле.

2.Показать пользовательскую вкладку

add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tabs' );
function woo_custom_product_tabs( $tabs ) {
  $tabs = array(
    'title' => 'Custom tab',
    'priority' => 20,
    'callback' => 'get_custom_product_tab_content',
  );
  return $tabs;
}

function get_custom_product_tab_content () {
  the_field('custom_detail');
}
...