基本上我无法按照我想要的方式获得重定向工作,所以我想添加一个将在/ my-account / page上运行的函数来查看当前是否存在用户在过去10秒内订购了产品A或B(已完成状态,使用自动完成订单插件),如果是,则将其重定向到功能中指定的自定义感谢页面。
我发现了很多函数来提取最近的订单,但我不确定我是否正朝着正确的方向前进。如何在3.0中获取用户最近订单的时间戳和产品ID?是否有一个钩子将此绑定到/ my-account / page或者我是否需要破解javascript / php工作?
答案 0 :(得分:0)
购买后如何直接运行代码? 您检查它是哪个产品(如果需要,还要检查更多),然后重定向到自定义的谢谢页面。
add_action( 'woocommerce_thankyou', 'my_custom_code' );
function my_custom_code( $order_id ) {
// Lets grab the order
$order = wc_get_order( $order_id );
// do stuff
}
答案 1 :(得分:0)
这是我最终做的事情:
在“我的帐户”页面的“订单”表格中添加了自定义列 其中包括订单ID(使用过滤器添加列 - SKU - 和 然后更新orders.php页面中的逻辑以添加产品ID 到SKU专栏。
function new_orders_columns( $columns = array() ) {
$columns['product-name'] = __( 'SKU', 'Text Domain' );
return $columns;
}
add_filter( 'woocommerce_account_orders_columns', 'new_orders_columns' );
添加了一个jQuery脚本(通过短信代码添加到'我的 帐户'页面)将拉出当前日期,即日期时间 来自日期列的属性和来自SKU的产品ID文本 第一行的列 - 即最近的订单
使用Javascript查找当前时间和之间的差异 订单时间并将该数字转换为秒数
根据该时间的值添加了条件重定向 差异小于10(秒),产品ID为a 具体身份
function mycustomorder_redirect() {
if (is_user_logged_in()) {
date_default_timezone_set('America/New_York');
$time_now = date( 'c' );
echo '<script>jQuery("document").ready(function() {
//
//Get most recent order datetime
var lastorder_td = jQuery("td.woocommerce-orders-table__cell-order-date:eq(0) time").attr("datetime");
//
//Get most recent order product id
var product_check = jQuery("td.woocommerce-orders-table__cell-product-name:eq(0)").text();
//
//Remove whitespace
product_check = product_check.replace(/(^\s+|\s+$)/g,"");
//
//Get current datetime
var current_wrap = "' . $time_now . '";
//
//Remove +00:00 or -00:00
lastorder_td = lastorder_td.substring(0, lastorder_td.length - 6);
current_wrap = current_wrap.substring(0, current_wrap.length - 6);
//
//Convert to javascript date
var column_a = new Date(current_wrap);
var column_b = new Date(lastorder_td);
//
//Find time difference
var dif = column_a - column_b;
//
//Convert to seconds
var seconds_toredirect = dif / 1000;
//
//Add redirect
if (seconds_toredirect < 10 && (product_check == 1 || product_check == 2)) {
window.location.replace("https://exampleurl.com/page/");
}
});
</script>';
}
}
add_shortcode( 'order-custom', 'mycustomorder_redirect' );