Удаление платежных шлюзов из WooCommerce

10

У меня есть магазин WooCommerce (работает локально), но я хочу удалить платежные шлюзы. Клиент должен иметь возможность разместить заказ без оплаты какого-либо процента, я вышлю им счет-фактуру вручную.

Я не могу найти, где отключить это, кажется, не является стандартным в WooCommerce.

Попробовали отключить все платежные шлюзы в бэкэнд, но вам нужно оставить один шлюз оплаты.

Спасибо заранее!

Теги:
woocommerce

4 ответа

15

Просто добавьте эту строку в functions.php в свою тему: add_filter('woocommerce_cart_needs_payment', '__return_false');

15

Оставьте "Cash on Delivery" включенным, и он не будет принимать платеж при оформлении заказа. Вы можете легко изменить заголовки и ярлыки "Наличные деньги" на что-то вроде "Без оплаты" или аналогичных.

  • 0
    Сделано это, кажется, делать то, что я хочу. Однако я не могу отключить Multisafepay, поэтому у пользователя есть выбор между наложенным платежом или Multisafepay. Multisafepay также выбран по умолчанию, однако я выбрал наложенным платежом по умолчанию.
  • 0
    Является ли опция Multisafepay плагином? Разве вы не можете просто удалить плагин, если он не нужен?
Показать ещё 2 комментария
3

Что-то, что другие ответы на этот вопрос не затронули, - это тот факт, что вам нужен способ для клиента в конечном счете оплатить счет. Использование Cash on Delivery (переименованное в соответствии с вашими потребностями) отлично выполняет то, что пользователь не платит при оформлении заказа, но проблема в том, что если Cash on Delivery был вашим единственным методом оплаты, он все равно будет единственным способом оплаты, когда вы отправите им счет-фактура.

Я думаю, что в большинстве случаев вам понадобится только доставка наложенным платежом во время проверки корзины и другой способ оплаты (например, Stripe) для способа оплаты счетов.

Здесь полный рабочий процесс для создания установки отложенного платежа.

  • Как упоминается @crdunst, вы должны использовать Cash on Delivery и переименовать это "Подождать счета" или что-то в этом роде.
  • Включите все платежные шлюзы, которые вы когда-либо захотите использовать (в этом примере мы просто используем Cash on Delivery и Stripe. Наличные деньги при доставке будут нашим платежным шлюзом "checkout", а Stripe будет нашей платежной ведомостью шлюз.
  • Используйте следующий фильтр для включения и выключения шлюзов на основе того, находитесь ли вы в конечной точке order-pay (страница, используемая для платежей по счетам).

    /**
     * Only show Cash on Delivery for checkout, and only Stripe for order-pay
     *
     * @param   array   $available_gateways    an array of the enabled gateways
     * @return  array                          the processed array of enabled gateways
     */
    function so1809762_set_gateways_by_context($available_gateways) {
        global $woocommerce;
    
        $endpoint = $woocommerce->query->get_current_endpoint();
    
        if ($endpoint == 'order-pay') {
            unset($available_gateways['cod']);
        } else {
            unset($available_gateways['stripe']);
        }
    
        return $available_gateways;
    }
    add_filter( 'woocommerce_available_payment_gateways', 'so1809762_set_gateways_by_context');
    

Конечно, если вы используете шлюз, отличный от полосы для страницы order-pay, вам нужно убедиться, что вы обновили unset($available_gateways['stripe']); до соответствующего массива.

После этого вы должны быть хорошими! Теперь ваш сайт будет отображать различные шлюзы на основе того, находитесь ли вы на странице оплаты счетов!

0

Другой вариант - использовать метод оплаты BACS, где вы могли бы объяснить клиенту, что он будет выставляться позже.

Вы даже можете добавить информацию по электронной почте, которая отправляется при использовании BACS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню