微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将PayPal和BACS添加到Klarna Checkout

如何解决将PayPal和BACS添加到Klarna Checkout

我正在尝试将PayPal和BACS(银行转账)添加到WooCommerce的Klarna Checkout中。

我从Klarna(https://github.com/krokedil/klarna-checkout-external-payment-method-for-woocommerce/blob/master/klarna-checkout-external-payment-method-for-woocommerce.php)找到了示例插件

这很好用,但是当我尝试更改代码显示和使用BACS付款时,我只显示了BACS选项,而不是PayPal和BACS。

这是krokedil提供的示例PayPal代码(我已经在后端切出了插件设置的代码):

add_filter( 'kco_wc_api_request_args','kcoepm_create_order_paypal' );
function kcoepm_create_order_paypal( $request_args ) {

    $kco_settings = get_option( 'woocommerce_kco_settings' );
    $name         = isset( $kco_settings['epm_paypal_name'] ) ? $kco_settings['epm_paypal_name'] : '';
    $image_url    = isset( $kco_settings['epm_paypal_img_url'] ) ? $kco_settings['epm_paypal_img_url'] : '';
    $description  = isset( $kco_settings['epm_paypal_description'] ) ? $kco_settings['epm_paypal_description'] : '';

    $klarna_external_payment = array(
        'name'         => $name,'image_url'    => $image_url,'description'  => $description,'redirect_url' => add_query_arg(
            array(
                'kco-external-payment' => 'paypal',// Set this to the ID of the relevant payment method in WooCommerce.
                'order_id'             => isset( $request_args['merchant_reference2'] ) ? $request_args['merchant_reference2'] : '{checkout.order.id}',),wc_get_checkout_url()
        ),);

    $klarna_external_payment                  = array( $klarna_external_payment );
    $request_args['external_payment_methods'] = $klarna_external_payment;

    return $request_args;
}

我想出了以下代码,该代码实际上将显示BACS付款方式并允许付款。但是,当我启用我的代码后,贝宝(PayPal)付款选项就会立即消失。

add_filter( 'kco_wc_api_request_args','kcoepm_create_order_bacs' );
function kcoepm_create_order_bacs( $request_args ) {

    $klarna_external_payment = array(
        'name'         => 'BACS','image_url'    => 'https://via.placeholder.com/350x150','description'  => 'Pay via Banktransfer','redirect_url' => add_query_arg(
            array(
                'kco-external-payment' => 'bacs',);

    $klarna_external_payment                  = array( $klarna_external_payment );
    $request_args['external_payment_methods'] = $klarna_external_payment;

    return $request_args;
}

我不知道如何同时注册两种付款方式。我认为这与未注册的数组有关。

我在krokedik文档中找到了此通知,但不知道如何实现:

“应将请求中发送给Klarna的每种定义的外部付款方式添加为数组,如此处的文档所述:https://developers.klarna.com/api/#checkout-api__create-a-new-order__external_payment_methods."

任何帮助将不胜感激!

解决方法

此代码将两种付款方式都添加到了结帐页面: https://gist.github.com/flymke/c5f49b52c8ecf5069c68b6d9a4e84c76

您需要将两个$klarna_external_payments数组都添加到$request_args['external_payment_methods']

请确保您已将付款方式更改为正确的ID,在我的示例中,PayPal被称为“ ppec_paypal”,因为我们使用的是PayPal快速结帐,而不是常规的PayPal:'kco-external-payment' => 'ppec_paypal' 。 您可以在显示以下代码的代码中找到它:

//将此设置为WooCommerce中相关付款方式的ID。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。