Пару дней назад я заметил, что в 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 из магазина 😎