Я хочу переместить файл купона после оплаты заказа. Это то, что я попробовал все готово:
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form');
add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' );
Сейчас в настоящее время после оформления заказа.
Спасибо!
Вы должны попробовать это:
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
через вашу активную тему…
Код купона — это отдельная форма, поэтому вам необходимо выполнить следующие шаги:
Чтобы реализовать этот шаг, я буду использовать библиотеку 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');