Woocommerce Изменение места размещения с помощью обертки

Я пытаюсь изменить размещение цены сверху до кнопки «Добавить в корзину» и вы хотите обернуть цену и добавить в корзину кнопку (форму) как с одним div.

Я не знаю, что это плохо или правильно, но каким-то образом мне удалось изменить место размещения, но теперь возникают проблемы с

Вот что я делаю

//first removing all from single product summary remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 ); // adding and re arranging placement function q2a_product_summary() { add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); echo '<div class="buy-box">'; add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 30 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); echo '</div>'; add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 ); } add_action('woocommerce_single_product_summary', 'q2a_product_summary'); 

Но когда я добавляю, он бросается наверху, как <div class="buy-box"> </div>

Теперь, что я должен сделать, я могу обернуть цену и добавить в корзину кнопку с div выше.

Solutions Collecting From Web of "Woocommerce Изменение места размещения с помощью обертки"

Хорошо, я решил это, но не знаю, что это правильно или неправильно. Надеюсь, вы, эксперт, дадите несколько лучших рекомендаций.

Я только что добавил две функции в свою функцию add_action и использовал их как оболочку.

 // adding and re arranging placement function q2a_product_summary() { function wrapstart () { echo '<div class="buy-box">'; } function wrapend () { echo '</div>'; } add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); add_action( 'woocommerce_single_product_summary', 'wrapstart', 30 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 30 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); add_action( 'woocommerce_single_product_summary', 'wrapend', 30 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 ); } add_action('woocommerce_single_product_summary', 'q2a_product_summary'); 

Это только и правильный способ сделать? Я уверен, что должен быть лучший способ, чем этот длинный и грязный путь.

Пожалуйста, предложите.

Я просто добавил эти 2 в функции темы:

 remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 15 );