Как полностью удалить стандартные методы оплаты?

Когда вы устанавливаете WooCommerce, у вас по умолчанию доступны несколько методов оплаты: «Прямой банковский перевод», «Чековые платежи», «Оплата для доставке» и «PayPal».

Понятное дело, что для русскоязычных стран некоторые из них неактуальны.

Также не могу не порекомендовать вам свой видеокурс по WooCommerce 🙃

стандартные методы оплаты WooCommerce
Понятное дело, что можео включать/выключать каждый метод в настройках, но что, если вы хотите вообще убрать возможность использовать какой-то из них? Удалить с концами?

На тот случай, если PayPal напрягает вас своим нахождением в настройках, вы можете от него избавиться. То же самое касается и остальных трёх методов.

Делается это очень легко – вставкой следующего кода в functions.php вашей текущей темы или же дочерней темы.

add_filter( 'woocommerce_payment_gateways', 'truemisha_remove_default_gateways' );
 
function truemisha_remove_default_gateways( $gateways ) {
 
	$remove_gateways = array(
		'WC_Gateway_BACS', // прямой банковский перевод
		'WC_Gateway_Cheque', // чековые платежи
		'WC_Gateway_COD', // оплата при доставке
		'WC_Gateway_Paypal' // PayPal
	);
 
	foreach ( $gateways as $key => $value ) {
		if ( in_array( $value, $remove_gateways ) ) {
			unset( $gateways[ $key ] );
		}
	}
 
	return $gateways;
}
  • В этом примере мы не можем сделать например unset( 'WC_Gateway_BACS' ), потому что имеем дело с нумерованным массивом, у которого ключи – цифры.
  • Также мы не можем переопределить массив с нуля, потому что тогда мы не сможем добавить никакой новый метод оплаты через установку плагина например.

В итоге в моём примере получилось так:

Оплата по картам через эквайринг банка в WooCommerce

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии — 5

  • Станислав 5 августа 2020 #

    Михаил, здравствуйте! Помогите советом, как вынести список доставки и оплаты за пределы чека на странице оформления заказа? Корректно ли будет удалить куски кода, отвечающие за вывод этих списков, и добавить их на странице оформления заказа внутри своей разметки?

    • Миша 5 августа 2020 #

      Добрый день!
      Почему всегда все пишут "Михаил", у меня вроде нигде так не указано 🤔 даже домен сайта не mikhail.blog 😁

      Вы имеете ввиду что-то типа WC()->payment_gateways->get_available_payment_gateways() ?

      • Станислав 5 августа 2020 #

        Я имея в виду, что по-дефолту способ доставки и оплаты находится внутри чека с ценой. В дизайн-макете предусмотрено, что выбор способа доставки должен быть оформлен как выпадающий список, а выбор возможных способ оплаты как радио-кнопки (примерно как по-дефолту), и всё это должно находиться вне чека в ценой и кнопкой "оформить заказ".

        Проблема в том, что я не знаю как корректно, не нарушив работу вынести их за пределы чека. Отключить их вывод в functions.php и вывести вручную в нужных местах шаблона будет корректным способом? Или как-то иначе?

      • Миша 6 августа 2020 #

        Ну не забывайте, что страница оплаты это прежде всего – форма. Кроме того, надо ещё сохранить классы элементов, и всё у вас получится.

        • Станислав 6 августа 2020 #

          Спасибо.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.