将订单ID从另一个页面传递到当前页面上的JavaScript变量
背景 我们在WooCommerce中稍微改变了结账流程 通常,用户会进入:订单结帐-->谢谢页面(此处显示将订单ID从另一个页面传递到当前页面上的JavaScript变量,javascript,php,woocommerce,Javascript,Php,Woocommerce,背景 我们在WooCommerce中稍微改变了结账流程 通常,用户会进入:订单结帐-->谢谢页面(此处显示订单ID)->追加销售页面 现在是这样的:订单签出-->追加销售页面 此重定向是使用以下脚本实现的: add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' ); function woo_custom_redirect_after_purchase() { global $wp; if ( is_check
订单ID
)->追加销售页面
现在是这样的:订单签出-->追加销售页面
此重定向是使用以下脚本实现的:
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;
}
}
问题
这里的问题是,我无法从感谢页面的DOM中提取订单ID
,因为签出后,我们会立即将用户重定向到Upsell页面
那么,有没有办法将订单ID
推送到Upsell页面上的Javascript变量中呢
谢谢。我不会使用javascript,但会使用
wc\u get\u customer\u last\u order($customer\u id)在“追加销售”页面上的代码>以获取最新订单id
//获取用户id
$customer\u id=get\u current\u user\u id();
//拿到最后的订单
$last\u order=wc\u get\u customer\u last\u order($customer\u id);
//获取订单id
$order\u id=$last\u order->get\u id();
echo$order\u id;
//编辑:如果您想使用order id作为javascript变量,可以通过以下方式进行
?>
jQuery(文档).ready(函数($){
变量顺序_id=;
控制台日志(订单id);
});
嘿@7uc1f3r,谢谢你的评论。我回家后会试试你的密码,但只是想知道。在回显$order_id之后,如何将其存储在javascript变量中?很抱歉,我不熟悉PHP。谢谢你的更新答案。我将您的代码插入functions.php,Wordpress不允许我保存。第一个错误是语法错误,意外的文件结尾。我解决这个问题的办法是在末尾加一个?>
。然而,我随后在wp content/themes/hello theme child master/functions.php:149中遇到了这个错误Uncaught error:Call to member function get_id()on bool。我说过你可以在你的upsell页面上使用这个代码,谢谢你的回复。对不起,我误解你了。需要一些时间来了解如何在我的upsell页面上使用它。嘿7uc1f3r,谢谢。由于用户不需要登录购买,我不得不对您的代码稍加修改。我通过functions.php
和页面本身的一个快捷码实现了它。虽然console.log显示了正确的数量,但奇怪的是,当我在Chrome控制台中输入order\u id
时,我收到了这个错误消息uncaughtreferenceError:order\u id没有定义。你知道为什么会这样吗?仅供参考,我从这里获取了部分修改后的代码:。