实现了一个 WordPress 插件,使得当客户在 B1 站点上完成订单支付后,会自动跳转到 B2 站点进行支付。
为了使用这个插件,您需要完成以下步骤:
- 在 B1 站点中的 functions.php 文件中添加第一段代码,以便将订单信息传输到 B2 站点。在添加代码之前,请确保您已经安装并启用了 WooCommerce 插件。
- 在 B2 站点中的 functions.php 文件中添加第二段代码,以便接收并填充 B1 站点传输过来的订单信息。同样地,在添加代码之前,请确保您已经安装并启用了 WooCommerce 插件。
- 在 B1 站点中,打开一个商品页面并添加一个商品到购物车中。然后前往购物车页面并开始结账。
- 在结账页面中,填写所有必要的订单信息,并选择您想要使用的付款方式。最后,点击“Place Order”按钮完成订单支付。
- 完成支付后,您会自动跳转到 B2 站点的付款页面,并且在该页面上会显示 B1 站点传输过来的订单信息。
请注意,为了使这个插件正常工作,您需要在 B1 和 B2 站点之间建立良好的网络连接,以便可以在它们之间传输数据。如果您遇到任何问题,请尝试检查网络连接是否正常,并确保所有的代码都正确地添加到了相应的站点中。
- 在 B1 站点上创建一个新的插件
- 在 WordPress 后台,选择“插件”->“新增”
- 在插件名称的文本框中输入一个名称,例如“传输订单信息插件”
- 在插件代码中粘贴以下代码并保存:
/*
Plugin Name: 传输订单信息插件
Description: 将 WooCommerce 订单信息从 B1 站点传输到 B2 站点,并自动跳转到 B2 站点进行付款
Version: 1.0
*/
add_action( 'woocommerce_thankyou', 'redirect_to_b2_for_payment' );
function redirect_to_b2_for_payment( $order_id ) {
// 获取订单信息
$order = wc_get_order( $order_id );
$order_total = $order->get_total();
$order_payment_method = $order->get_payment_method();
$order_billing_first_name = $order->get_billing_first_name();
$order_billing_last_name = $order->get_billing_last_name();
$order_billing_address_1 = $order->get_billing_address_1();
$order_billing_address_2 = $order->get_billing_address_2();
$order_billing_city = $order->get_billing_city();
$order_billing_postcode = $order->get_billing_postcode();
$order_billing_country = $order->get_billing_country();
$order_billing_phone = $order->get_billing_phone();
$order_billing_email = $order->get_billing_email();
// 重定向到B2站点进行付款
$redirect_url = 'https://b2.com/payment-page/?order_id=' . $order_id . '&order_total=' . $order_total . '&order_payment_method=' . $order_payment_method . '&order_billing_first_name=' . $order_billing_first_name . '&order_billing_last_name=' . $order_billing_last_name . '&order_billing_address_1=' . $order_billing_address_1 . '&order_billing_address_2=' . $order_billing_address_2 . '&order_billing_city=' . $order_billing_city . '&order_billing_postcode=' . $order_billing_postcode . '&order_billing_country=' . $order_billing_country . '&order_billing_phone=' . $order_billing_phone . '&order_billing_email=' . $order_billing_email;
wp_redirect( $redirect_url );
exit;
}
- 在 B2 站点上创建一个新的插件
- 在 WordPress 后台,选择“插件”->“新增”
- 在插件名称的文本框中输入一个名称,例如“填充订单信息插件”
- 在插件代码中粘贴以下代码并保存:
/*
Plugin Name: 填充订单信息插件
Description: 从 B1 站点接收 WooCommerce 订单信息,并在 B2 站点中填写订单信息
Version: 1.0
*/
add_action( 'template_redirect', 'populate_order_details' );
function populate_order_details() {
// 检查是否有从 B1 站点传输过来的订单信息
if ( isset( $_GET['order_id'] ) ) {
// 获取订单信息
$order_id = $_GET['order_id'];
$order_total = $_GET['order_total'];
$order_payment_method = $_GET['order_payment_method'];
$order_billing_first_name = $_GET['order_billing_first_name'];
$order_billing_last_name = $_GET['order_billing_last_name'];
$order_billing_address_1 = $_GET['order_billing_address_1'];
$order_billing_address_2 = $_GET['order_billing_address_2'];
$order_billing_city = $_GET['order_billing_city'];
$order_billing_postcode = $_GET['order_billing_postcode'];
$order_billing_country = $_GET['order_billing_country'];
$order_billing_phone = $_GET['order_billing_phone'];
$order_billing_email = $_GET['order_billing_email'];
// 填写订单信息
$order = new WC_Order( $order_id );
$order->update_status( 'processing' );
$order->set_total( $order_total );
$order->set_payment_method( $order_payment_method );
$order->set_billing_first_name( $order_billing_first_name );
$order->set_billing_last_name( $order_billing_last_name );
$order->set_billing_address_1( $order_billing_address_1 );
$order->set_billing_address_2( $order_billing_address_2 );
$order->set_billing_city( $order_billing_city );
$order->set_billing_postcode( $order_billing_postcode );
$order->set_billing_country( $order_billing_country );
$order->set_billing_phone( $order_billing_phone );
$order->set_billing_email( $order_billing_email );
$order->save();
// 重定向到付款页面
wp_redirect( $order->get_checkout_payment_url() );
exit;
}
}
请将此代码块复制到您在 B2 站点中创建的插件中,并保存该文件。之后,当用户完成在 B1 站点中的订单付款时,他们将被重定向到 B2 站点的付款页面,并自动填写订单信息。
还没有评论呢,快来抢沙发~