Я пытаюсь удалить кнопку «Перейти к оформлению заказа» и ограничить доступ к странице оформления заказа до тех пор, пока покупатель не заполнит опцию «Рассчитать доставку» на странице корзины.
Я создал локальный способ доставки, который ограничен на несколько почтовых / почтовых индексов. Затем я добавил это к своим функциям. php file.
function disable_checkout_button_no_shipping() {
$package_counts = array();
// get shipping packages and their rate counts
$packages = WC()->shipping->get_packages();
foreach( $packages as $key => $pkg )
$package_counts[ $key ] = count( $pkg[ 'rates' ] );
// remove button if any packages are missing shipping options
if( in_array( 0, $package_counts ) )
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
}
add_action( 'woocommerce_proceed_to_checkout', 'disable_checkout_button_no_shipping', 1 );
Однако, когда я тестирую сайт в разных браузерах и в режимах инкогнито, появляется кнопка «Перейти к оформлению заказа».
Если я нажму на ссылку «Рассчитать доставку» и не заполню форму, а обновлю ее, кнопка исчезнет. Обычно я хочу, чтобы кнопка появлялась, когда клиент заполняет форму «Рассчитать доставку» на странице корзины (и у меня есть один из почтовых индексов в моем методе доставки), прежде чем он сможет перейти на страницу оформления заказа.