WooCommerce:确认订单后付款

Posted

技术标签:

【中文标题】WooCommerce:确认订单后付款【英文标题】:WooCommerce: Payment after confirming order 【发布时间】:2017-03-17 07:25:23 【问题描述】:

我正在创建一个 Woocommerce 商店。客户希望使用支付插件“Mollie”来接受 iDeal 支付(荷兰语)。

当人们从网上商店订购商品时,他们应该能够在不付费的情况下订购他们想要的一切。之后,店主应该会收到一封电子邮件并检查订单。

店主通过检查订购产品的库存来查看订单。从这一点开始应该有场景的:

    一切都有现货。称重包裹。添加运费。客户将收到一个付款链接。

    没有库存。应向客户发送一条消息,其中包含缺货消息。

    只有部分订单有货。应在 Woocommerce 订单面板中更改订单。剩余的订单被称重和包装。客户将收到一个付款链接。

订单被接受后,客户应该会收到一个带有正常付款方式(包括“Mollie”付款)的付款链接。

有没有办法做到这一点? 提前致谢!

【问题讨论】:

Mollie 允许您通过其 API 轻松创建付款和/或付款链接。订单完成后付款不包含在 Mollie Woocommerce 包中。所以:当然,但它确实需要一些自定义编码。 【参考方案1】:

我知道这是一年后的事,但这可能对其他人有所帮助:-)。 我的客户想要一个类似的流程,在店主确认订单之前,商店客户将无法在线支付。

解决方案:

    我们使用货到付款进行线下支付,重命名为“注册订单”。 我们使用 Stripe 进行在线支付的信用卡支付。 我们为 结帐 页面(结帐端点)展示了 货到付款,为 order-pay 页面展示了 Stripe (我的帐户端点),更多关于端点的信息在 woocommerce docs。 瞧。

我们使用此过滤器在 2 个端点之间切换支付网关。

function my_switch_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', 'my_switch_gateways_by_context');

我希望这会有所帮助。

【讨论】:

好极了!如此简单,如此便宜;p【参考方案2】:

据我所知,没有简单的方法可以做到这一点。正常的付款流程是让消费者在下订单时立即付款。如果某些产品缺货,您可以简单地创建(部分)退款。 Mollie's WooCommerce plugin 支持此功能。

【讨论】:

以上是关于WooCommerce:确认订单后付款的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce:所有新完成的订单暂停(特别是COD)并仅发送一个暂停电子邮件作为标准确认

WooCommerce - 同时使用多种付款方式支付订单

在 WooCommerce 中自动处理已付款订单而不是自动完成

在后端删除付款详细信息 Woocommerce 订单页面

在 WooCommerce 3+ 中将已付款订单标记为“已完成”,将未付款订单标记为“已取消”[重复]

Woocommerce 订单在创建后获得付款