zaza41rus
@zaza41rus

Woocommerce вывести кнопку добавить в корзину в нужном месте шаблона?

редактирую content-single-product.php
как в нем вывести отдельно кнопку woocommerce_template_single_add_to_cart(или другой хук который необходимо вывести в отдельном диве например)
<div id="product-<?php the_ID(); ?>" <?php wc_product_class( '', $product ); ?>>
<div class="flex">
	<div class="product-img">
		<?php
		/**
		 * Hook: woocommerce_before_single_product_summary.
		 *
		 * @hooked woocommerce_show_product_sale_flash - 10
		 * @hooked woocommerce_show_product_images - 20
		 */
		do_action( 'woocommerce_before_single_product_summary' );
		?>
	</div>

	<div class="summary entry-summary">
		<?php
		/**
		 * Hook: woocommerce_single_product_summary.
		 *
		 * @hooked woocommerce_template_single_title - 5
		 * @hooked woocommerce_template_single_rating - 10
		 * @hooked woocommerce_template_single_price - 10
		 * @hooked woocommerce_template_single_excerpt - 20
		 * @hooked woocommerce_template_single_add_to_cart - 30
		 * @hooked woocommerce_template_single_meta - 40
		 * @hooked woocommerce_template_single_sharing - 50
		 * @hooked WC_Structured_Data::generate_product_data() - 60
		 */
		do_action( 'woocommerce_single_product_summary' );
		?>
	</div>
        <div   class="product_footer">
                КНОПКА ДОБАВИТЬ В КОРЗИНУ
        </div>
</div>
</div>
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 2
AntonLitvinenko
@AntonLitvinenko
HTML coder
Как то так но я не проверял
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

if ( ! function_exists( 'single_add_to_cart_wrapper_start' ) ) {
  function single_add_to_cart_wrapper_start() {
    ?>
      <div class="product_footer">
    <?php
  }
}

if ( ! function_exists( 'single_add_to_cart_wrapper_end' ) ) {
  function single_add_to_cart_wrapper_end() {
    ?>
      </div>
    <?php
  }
}
add_action( 'woocommerce_after_single_product_summary', 'single_add_to_cart_wrapper_start', 1 );
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_add_to_cart', 3 );
add_action( 'woocommerce_after_single_product_summary', 'single_add_to_cart_wrapper_end', 5 );

на базе второго ответа вот готовый код, менее многословный
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

if ( ! function_exists( 'single_add_to_cart_in_footer' ) ) {
  function single_add_to_cart_in_footer() {
    ?>
      <div class="product_footer">
        <?php woocommerce_template_single_add_to_cart(); ?>
       </div>
    <?php
  }
}

add_action( 'woocommerce_after_single_product_summary', 'single_add_to_cart_in_footer', 5 );
Ответ написан
@Gamelot
Программист php
Можно воспользоваться функцией woocommerce_template_single_add_to_cart(). Она использует глобальную переменную $product внутри себя. При этом также вылезет input с кол-вом заказываемого товара. Его можно скрыть на css. Для простого товара работает точно. Для других типов не проверял.

<?php
woocommerce_template_single_add_to_cart();
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы