Ответ 1
Оставьте "Cash on Delivery" включенным, и он не будет принимать платеж при оформлении заказа. Вы можете легко изменить заголовки и ярлыки "Наличные деньги" на что-то вроде "Без оплаты" или аналогичных.
У меня есть магазин WooCommerce (работает локально), но я хочу удалить платежные шлюзы. Клиент должен иметь возможность разместить заказ без оплаты какого-либо процента, я вышлю им счет-фактуру вручную.
Я не могу найти, где отключить это, кажется, не является стандартным в WooCommerce.
Попробовали отключить все платежные шлюзы в бэкэнд, но вам нужно оставить один шлюз оплаты.
Спасибо заранее!
Оставьте "Cash on Delivery" включенным, и он не будет принимать платеж при оформлении заказа. Вы можете легко изменить заголовки и ярлыки "Наличные деньги" на что-то вроде "Без оплаты" или аналогичных.
Просто добавьте эту строку в functions.php в свою тему:
add_filter('woocommerce_cart_needs_payment', '__return_false');
Что-то, что другие ответы на этот вопрос не затронули, - это тот факт, что вам нужен способ для клиента в конечном счете оплатить счет. Использование Cash on Delivery (переименованное в соответствии с вашими потребностями) отлично выполняет то, что пользователь не платит при оформлении заказа, но проблема в том, что если Cash on Delivery был вашим единственным методом оплаты, он все равно будет единственным способом оплаты, когда вы отправите им счет-фактура.
Я думаю, что в большинстве случаев вам понадобится только доставка наложенным платежом во время проверки корзины и другой способ оплаты (например, 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']);
до соответствующего массива.
После этого вы должны быть хорошими! Теперь ваш сайт будет отображать различные шлюзы на основе того, находитесь ли вы на странице оплаты счетов!
Другой вариант - использовать метод оплаты BACS, где вы могли бы объяснить клиенту, что он будет выставляться позже.
Вы даже можете добавить информацию по электронной почте, которая отправляется при использовании BACS.