我无法从 WooCommerce 重定向到条带结帐

问题描述 投票:0回答:2

我有一个使用 WordPress 和 WooCommerce 制作的电子商务网站,对于支付网关,我正在使用 stripe。我尝试了很多插件,例如 WooCommerce Stripe Payment Gateway,当我单击付款按钮时,它会将我带到 WooCommerce 结帐页面,付款将在那里,WooCommerce 将处理一切,但我想重定向到 stripe 结帐页。我找到了这个插件 Stripe Payment Plugin for WooCommerce .

这个插件将允许我重定向到 stripe checkout,但不幸的是,我猜它的代码中有一个错误,我收到此错误:

您不能使用

line_items.amount
line_items.currency
line_items.name
line_items.description
line_items.images
这个API版本。请使用
line_items.price
line_items.price_data

我尝试自己修复它,但我不能这是它的 PHP 文件的一部分

 $session_data['line_items'] = array(
                    [
                        'name'     => esc_html( __( 'Total', 'payment-gateway-stripe-and-woocommerce-integration' ) ),
                        'amount'   => $total,
                        'currency' => strtolower(get_woocommerce_currency()),
                        'quantity' => 1,
                        'images'   => array($images),
                    ]
                );

if (empty($customer_id)) { 

            $customer = $this->create_stripe_customer( $order, $user);

            $customer_id = $customer->id;
            //saved stripe customer for charging  cards later
            update_user_meta($logged_in_userid, "_stripe_ch_customer_id", $customer_id);
        }
        $session_data['customer'] = $customer_id;
        
        $session_data['payment_intent_data']['setup_future_usage'] = 'off_session';

        $session_data['locale'] = $this->stripe_checkout_page_locale;
        $session_data = apply_filters('wt_stripe_alter_checkout_request_params', $session_data, $order);
        $session = \Stripe\Checkout\Session::create($session_data);
        
        return  array(
            'result'   => 'success',
            'redirect' => $this->get_payment_session_checkout_url( $session->id, $order ),
        );
php wordpress woocommerce stripe-payments
2个回答
0
投票

这似乎与最近对新 API 版本 2022-08-01 的更改有关。

这些参数已移至

line_items.price_data
对象中。 为了以所需的新形状传递数据,您需要传递如下内容:

$session_data['line_items'] = array(['price_data' => 
                    [
                        'name'     => esc_html( __( 'Total', 'payment-gateway-stripe-and-woocommerce-integration' ) ),
                        'amount'   => $total,
                        'currency' => strtolower(get_woocommerce_currency()),
                        'quantity' => 1,
                        'images'   => array($images),
                    ]
                ]);

您可以查看更新的 API 参考文档以获取更多信息


0
投票

如果您想绕过 WooCommerce 结帐并希望客户在单击网站上任意位置的结帐按钮时直接登陆 Stripe Checkout,那么您需要编写一个自定义插件,该插件将以编程方式创建 Stripe Checkout 会话并重定向所有结帐页面向 Stripe Checkout 会话发出请求。

该插件提供相同的开箱即用功能: https://codecanyon.net/item/woocommerce-stripe-checkout-plug-and-play/52826807?ref=sleekalgo

© www.soinside.com 2019 - 2024. All rights reserved.