WooCommerce: как удалить Apple Pay кнопки оплаты?

Пару дней назад я заметил, что в WooCommerce Stripe плагине добавили кнопку для оплаты через Apple Pay. Все бы ничего, но эта кнопка отображалась почти на всех спец. страницах Woo. О том как мне удалось ее убрать с минимальными потерями читайте далее…

Пока писал шапку для этого поста, параллельно загуглил про Apple Pay в woocommerse и обнаружил, что я как всегда опоздал с этим трендом и его (в смысле кнопку оплаты от pay apple) добавили еще как в марте, а я как говорится, ни сном ни духом…

В любом случае, «яблочная кнопка» — новая фича и загуглив  «убрать apple pay woocommerce» я, как и ожидалось особых ответов не получил. Поэтому начал разбираться в проблеме самостоятельно.

WooCommerce Apple Pay button — зачем так много?

Этих кнопок действительно много и с их количеством явно переборщили. Они «висят» на страницах: продукта, корзины и чекаута (возможно, где-то еще. Отпишитесь плиз в комментариях если найдете). В общем, для начала давайте уберем кнопку со страницы продукта. Для того что бы все заработало, вставьте следующий код  в ваш functions.php файл:

function remove_single_apay_btn() {
	$apay_instance = WC_Stripe_Apple_Pay::instance();
	// Небольшая подстраховка с проверкой совместимости
	if ( version_compare( WC_VERSION, '3.0.0', '<' ) ) {
		return remove_action( 'woocommerce_after_add_to_cart_button', array( $apay_instance, 'display_apple_pay_button' ), 1 );
	} else {
		return remove_action( 'woocommerce_after_add_to_cart_quantity', array( $apay_instance, 'display_apple_pay_button' ), 1 );
	}
}
add_action( 'init', 'remove_single_apay_btn', 1 );

Теперь давайте удалим кнопку apple со страницы корзины (сниппет можно вставить все в тот же файл написанный выше):

function remove_cart_apay_btn() {
	$apay_instance = WC_Stripe_Apple_Pay::instance();
	remove_action( 'woocommerce_proceed_to_checkout', array( $apay_instance, 'display_apple_pay_button' ), 1 );
	remove_action( 'woocommerce_proceed_to_checkout', array( $apay_instance, 'display_apple_pay_separator_html' ), 2 );
}
add_action( 'init', 'remove_cart_apay_btn', 1 );

и наконец убираем кнопку на странице чекаута:

function remove_checkout_apay_btn() {
	$apay_instance = WC_Stripe_Apple_Pay::instance();
	remove_action( 'woocommerce_checkout_before_customer_details', array( $apay_instance, 'display_apple_pay_button' ), 1 );
	remove_action( 'woocommerce_checkout_before_customer_details', array( $apay_instance, 'display_apple_pay_separator_html' ), 2 );
}
add_action( 'init', 'remove_checkout_apay_btn', 1 );

Естественно, куски кода выше, можно объединить в одну функцию и зацепить на init, что в принципе я бы и посоветовал вам сделать. В любом случае, теперь вы знаете как убрать кнопку apple pay из магазина  😎 

Подписаться на новые статьи