【问题标题】:Removing payment gateways from WooCommerce从 WooCommerce 中删除支付网关
【发布时间】:2013-05-19 17:46:27
【问题描述】:

我有一家 WooCommerce 商店(在本地运行),但我想删除支付网关。客户应该可以下订单,无需支付任何费用,我将手动向他们发送发票。

我真的找不到在哪里禁用它,这似乎不是 WooCommerce 中的标准。

已尝试禁用后端的所有支付网关,但您必须启用一个支付网关。

提前致谢!

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    只需在你的主题的functions.php中添加这一行: add_filter('woocommerce_cart_needs_payment', '__return_false');

    【讨论】:

      【解决方案2】:

      启用“货到付款”,它不会在结帐时付款。您可以轻松地将“货到付款”标题和标签更改为“无需付款”或类似名称。

      【讨论】:

      • 完成了,似乎做了我想做的事。但是我无法禁用 Multisafepay,因此用户现在可以在货到付款或 Multisafepay 之间进行选择。 Multisafepay 也是默认选择的,但我选择了货到付款作为默认选择。
      • Multisafepay 选项是插件吗?如果不需要插件,你能不直接删除它吗?
      • 就是这样! Multisafepay 应该与 WooCommerce 一起安装,因为我自己永远不会安装它。停用插件并正常工作。干杯!
      • 太好了,很高兴它有帮助。在这种情况下,请随意标记为最佳答案;)
      【解决方案3】:

      此问题的其他答案尚未解决的问题是,您需要一种方式让客户最终支付发票。使用货到付款(根据您的需要重命名)完美地实现了无需用户在结帐时实际付款,但问题是如果货到付款是您的唯一付款方式,它仍然 成为您向他们发送发票时唯一的付款方式。

      我认为,在大多数情况下,您在购物车结账时只需要货到付款,而发票付款方式则需要不同的付款方式(如 Stripe)。

      这是创建延期付款设置的完整工作流程。

      1. 就像@crdunst 提到的那样,您应该使用货到付款并重命名 它可以“等待发票”之类的。
      2. 启用您想要使用的所有支付网关(在本例中,我们将只使用货到付款和 Stripe。货到付款将是我们的“结帐”支付网关,而 Stripe 将是我们的发票付款网关。
      3. 使用以下过滤器根据您是否在 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']); 更新为正确的数组键。

      在那之后,你应该好好去!您的网站现在将根据您是否在发票支付页面上显示不同的网关!

      【讨论】:

        【解决方案4】:

        其他选项是使用 BACS 付款方式,您可以向客户解释他将在稍后收到发票。

        您甚至可以在使用 BACS 时发送的电子邮件中添加一些信息。

        【讨论】:

          猜你喜欢
          • 2013-07-18
          • 2016-02-09
          • 1970-01-01
          • 2020-09-25
          • 2015-03-29
          • 2017-03-02
          • 2018-11-07
          • 2015-10-08
          • 2017-08-05
          相关资源
          最近更新 更多