Есть ли у кого-нибудь идеи, как справиться с таким сценарием?
Я хочу отображать уведомление и отключать кнопку размещения заказа на странице оформления заказа, когда выбрана страна, отличная от XX, и корзина содержит определенный продукт (доставка невозможна). в другую страну).
Я мог бы использовать Jquery, но не могу получить доступ к кнопке «Разместить заказ», поскольку ее форма обновляется через AJAX каждый раз, когда я меняю платежный адрес. Вот чего я достиг на данный момент:
Код: Выделить всё
add_action( 'woocommerce_checkout_before_customer_details', 'display_shipping_notice' );
function display_shipping_notice() {
echo 'We cannot ship this product to your country. Please remove it from the cart to continue!';
}
add_action( 'woocommerce_after_checkout_form', 'show_shipping_notice_js' );
function show_shipping_notice_js(){
?>
jQuery(function($){
var countryCode = 'LV', // Set the country code (That will display the message)
countryField = 'select#billing_country'; // The Field selector to target
function showHideShippingNotice( countryCode, countryField ){
if( $(countryField).val() !== countryCode && $('.shop_table tr').hasClass('id-27733')){
$('.shipping-notice').show();
$('.woocommerce-checkout-payment').hide();
}
else {
$('.shipping-notice').hide();
$('.woocommerce-checkout-payment').show();
}
}
// On Ready (after DOM is loaded)
showHideShippingNotice( countryCode, countryField );
// On billing country change (Live event)
$('form.checkout').on('change', countryField, function() {
showHideShippingNotice( countryCode, countryField );
});
});
Источник: [url]https://stackoverflow.com/questions/69495006/disable-place-order-button-and-display-message-if-xx-country-not-selected-and-ca[/url]