Переместить поле купона после оплаты заказа в Woocommerce?

Я хочу переместить файл купона после оплаты заказа. Это то, что я попробовал все готово:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form');
add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' );

Сейчас в настоящее время после оформления заказа.

Спасибо!

1

Решение

Вы должны попробовать это:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form' );

Но не уверен, что он будет функционировать … Вам также необходимо настроить шаблон Woocommerce. checkout/form-coupon.php через вашу активную тему

3

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

Код купона — это отдельная форма, поэтому вам необходимо выполнить следующие шаги:

Чтобы реализовать этот шаг, я буду использовать библиотеку jQuery UI Dialog, чтобы помочь мне с функциональностью диалога. В functions.php добавьте следующий код (в том случае, если на вашем сайте еще нет библиотеки JQuery UI Dialog).

function cw_scripts() {
wp_enqueue_script('jquery-ui-dialog');
}
add_action('wp_enqueue_scripts', 'cw_scripts');

Затем создайте экземпляр диалога модели jQuery, который содержит все содержимое кода купона. Расположите диалоговое окно модели так, чтобы оно привязывалось к элементу HTML внутри формы оформления заказа. Используйте существующие фильтры (или действия) WooCommerce, чтобы разместить элемент HTML в нужном месте в форме оформления заказа.
в functions.php, добавьте следующий код:

function cw_show_coupon_js() {
wc_enqueue_js('$("a.showcoupon").parent().hide();');
wc_enqueue_js('dialog = $("form.checkout_coupon").dialog({
autoOpen: false,
width: 500,
minHeight: 0,
modal: false,
appendTo: "#coupon-anchor",
position: { my: "left", at: "left", of: "#coupon-anchor"},
draggable: false,
resizable: false,
dialogClass: "coupon-special",
closeText: "Close",
buttons: {}});');
wc_enqueue_js('$("#show-coupon-form").click( function() {
if (dialog.dialog("isOpen")) {
$(".checkout_coupon").hide();
dialog.dialog( "close" );
} else {
$(".checkout_coupon").show();
dialog.dialog( "open" );
}
return false;});');
}
add_action('woocommerce_before_checkout_form', 'cw_show_coupon_js');

Затем, чтобы отобразить поле купона в форме, добавьте «Нажмите здесь, чтобы ввести ссылку на код». Этот код добавит ссылку между разделами сведений о клиенте и деталях заказа. Чтобы проверить другие места для этой ссылки, вы можете посмотреть другие действия и фильтры WooCommerce на странице оформления заказа (woocommerce_checkout_fields или woocommerce_before_checkout_billing_form). Если вы не можете найти правильный фильтр или метод, вы можете переопределить шаблон страницы оформления заказа WooCommerce по умолчанию и найти ссылку в нужном месте.

function cw_show_coupon() {
global $woocommerce;

if ($woocommerce->cart->needs_payment()) {
echo '<p style="padding-bottom: 5px;"> Have a coupon? <a href="#" id="show-coupon-form">Click here to enter your coupon code</a>.</p><div id="coupon-anchor"></div>';
}
}
add_action('woocommerce_checkout_after_customer_details', 'cw_show_coupon');
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector