Отображать пользовательские атрибуты, прежде чем WooCommerce продаст (связанные продукты)

Мне удается отобразить пользовательские атрибуты, но они отображаются после связанных продуктов, как я могу сделать их раньше?

Слева: что у меня сейчас есть, справа желаемый результат

Спасибо
введите описание изображения здесь

1

Решение

Если вы посмотрите на шаблон woocommerce content-single-product.php, вы увидите, что:

/**
* woocommerce_after_single_product_summary hook.
*
* @hooked woocommerce_output_product_data_tabs - 10
* @hooked woocommerce_upsell_display - 15
* @hooked woocommerce_output_related_products - 20
*/
do_action( 'woocommerce_after_single_product_summary' );

Это означает, что в woocommerce_after_single_product_summary крюк, отображается следующее:

  1. Первый (с приоритетом 10) вкладки продукта,
  2. Затем (с приоритетом 15) Upsells,
  3. И закончить (с приоритетом 20) сопутствующие товары.

Так что если вы хотите отобразить свой пользовательский код между вкладками продукта и продажами, вам нужно будет использовать пользовательскую функцию, подключенную к woocommerce_after_single_product_summary действие крючок с приоритетом от 11 до 14.

Вы можете сделать это следующим образом:

add_action('woocommerce_after_single_product_summary', 'custom_code_after_single_product_summary', 12 );
function custom_code_after_single_product_summary() {
global $product;

// Set here your post "meta_key" for your custom product attribute
$meta_key1 = 'pa_when-to-use';

// Your code (related to your comment):
echo get_post_meta($product->get_id(),  $meta_key1, true);
}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Протестировано и работает на WooCommerce 3+…

2

Другие решения

Других решений пока нет …