Wordpress教程 2023年03月5日
0 收藏 0 点赞 1,064 浏览 3723 个字

实现了一个 WordPress 插件,使得当客户在 B1 站点上完成订单支付后,会自动跳转到 B2 站点进行支付。

为了使用这个插件,您需要完成以下步骤:

  1. 在 B1 站点中的 functions.php 文件中添加第一段代码,以便将订单信息传输到 B2 站点。在添加代码之前,请确保您已经安装并启用了 WooCommerce 插件。
  2. 在 B2 站点中的 functions.php 文件中添加第二段代码,以便接收并填充 B1 站点传输过来的订单信息。同样地,在添加代码之前,请确保您已经安装并启用了 WooCommerce 插件。
  3. 在 B1 站点中,打开一个商品页面并添加一个商品到购物车中。然后前往购物车页面并开始结账。
  4. 在结账页面中,填写所有必要的订单信息,并选择您想要使用的付款方式。最后,点击“Place Order”按钮完成订单支付。
  5. 完成支付后,您会自动跳转到 B2 站点的付款页面,并且在该页面上会显示 B1 站点传输过来的订单信息。

请注意,为了使这个插件正常工作,您需要在 B1 和 B2 站点之间建立良好的网络连接,以便可以在它们之间传输数据。如果您遇到任何问题,请尝试检查网络连接是否正常,并确保所有的代码都正确地添加到了相应的站点中。

  1. 在 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;
}

 

  1. 在 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 站点的付款页面,并自动填写订单信息。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.mizhanw.com/blog/1859.html

相关推荐
实现 WordPress 自动更新所有文章的发布日期为当天的日期
//二开自动更新文章日期为当天发布。 //设置宝塔面板中的定时任务,通过访问带有?update_posts=run的链接触发文章更新.如:c…
日期:2024-09-22 点赞:0 阅读:46
WooCommerce订单列表显示购买产品
// 为 Legacy CPT-based 订单添加自定义列 add_filter('manage_edit-shop_order_colu…
日期:2024-09-20 点赞:0 阅读:99
WooCommerce Order 类的所有Get方法,以面向对象的方法获取订单数据
在开发WooCommerce插件或者与第三方系统交互时,我们需要获取 WooCommerce 订单的数据,WooCommerce的 WC_O…
日期:2024-09-20 点赞:0 阅读:56
为WooCommerce后台订单列表添加按自定义字段功能
  // 添加自定义列到订单列表 add_filter('manage_woocommerce_page_wc-orders_co…
日期:2024-09-20 点赞:0 阅读:60
添加删除 WooCommerce 数据列表中的数据列
转载:添加删除 WooCommerce 数据列表中的数据列 _WordPress智库 (wpzhiku.com) 在 WooCommerce…
日期:2024-09-20 点赞:0 阅读:71
WooCommerce的结账页面的订单摘要中,在商品数量后添加加减按钮
关于 WooCommerce 结账页面的定制内容在网上有大量讨论。为什么呢?因为结账页面无疑是任何 WooCommerce 网站的关键页面!…
日期:2024-08-11 点赞:0 阅读:126
发表评论
暂无评论

还没有评论呢,快来抢沙发~