【问题标题】:Pass WooCommerce Order ID from another page to JavaScript variable on current page将 WooCommerce 订单 ID 从另一个页面传递到当前页面上的 JavaScript 变量
【发布时间】:2020-08-26 16:06:46
【问题描述】:

背景

我们在 WooCommerce 中略微更改了结帐流程

通常,用户会去:Order Checkout --> 感谢页面(Order ID 出现的地方)--> Upsell 页面

现在是这样的:订单结帐 --> 追加销售页面

这个重定向是使用这个脚本实现的:

add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
global $wp;
if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
wp_redirect( 'https://website.com/upsell/' );
exit;
}
}

问题

这里的问题是我无法从Thank You 页面的DOM 中提取Order ID,因为结帐后我们会立即将用户重定向到Upsell 页面。

那么有没有办法将Order ID 推送到追加销售页面上的 Javascript 变量中?

谢谢。

【问题讨论】:

    标签: javascript php woocommerce


    【解决方案1】:

    我不会使用 javascript,但会在您的追加销售页面上使用 wc_get_customer_last_order( $customer_id ); 来获取最新的订单 ID

    // Get user id
    $customer_id = get_current_user_id();
    
    // Get last order
    $last_order = wc_get_customer_last_order( $customer_id );
    
    // Get order id
    $order_id = $last_order->get_id();
    
    echo $order_id;
    
    // EDIT: if you like to use the order id as javascript variable, you can do this in the following way
    ?>
    <script type="text/javascript">
    jQuery(document).ready(function ($) {
        var order_id = <?php echo $last_order->get_id(); ?>;
        console.log(order_id);
    });
    </script>
    <?php
    

    如果您无法访问$customer_id(取决于客人是否可以在没有您网店帐户的情况下订购?)

    您可以改用sql query 来获取最新的订单 ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2017-09-19
      • 1970-01-01
      • 2020-10-19
      相关资源
      最近更新 更多