看看用户是否在过去10秒内完成了订单(woocommerce)?

时间:2017-06-12 03:05:53

标签: javascript php woocommerce hook-woocommerce

基本上我无法按照我想要的方式获得重定向工作,所以我想添加一个将在/ my-account / page上运行的函数来查看当前是否存在用户在过去10秒内订购了产品A或B(已完成状态,使用自动完成订单插件),如果是,则将其重定向到功能中指定的自定义感谢页面。

我发现了很多函数来提取最近的订单,但我不确定我是否正朝着正确的方向前进。如何在3.0中获取用户最近订单的时间戳和产品ID?是否有一个钩子将此绑定到/ my-account / page或者我是否需要破解javascript / php工作?

2 个答案:

答案 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' );