【问题标题】:Strtotime can't be used for comparison with meta valueStrtotime 不能用于与元值进行比较
【发布时间】:2018-07-16 13:34:45
【问题描述】:

我正在使用 WooCommerce,并尝试检查是否存在逾期付款。每天下午 6 点之后支付的任何订单(有时支付网关有点慢),都会恢复到“暂停”状态。我希望此处理仅适用于明天交货日期的订单。

这不起作用(“暂停”状态从未实现):

add_action( 'woocommerce_order_status_processing', 'check_late_payment' );

function check_late_payment( $order_id ){
    date_default_timezone_set('Asia/Jakarta');
    if (time() > strtotime("18:00:00")) {
        $order = wc_get_order( $order_id );
        if ( get_post_meta( $order_id, '_orddd_timestamp', true ) == strtotime('tomorrow') ) {
            $order->update_status( 'on-hold' );
        }       
    }
}

但是,这是有效的:

add_action( 'woocommerce_order_status_processing', 'check_late_payment' );

function check_late_payment( $order_id ){
    date_default_timezone_set('Asia/Jakarta');
    if (time() > strtotime("18:00:00")) {
        $order = wc_get_order( $order_id );
        if ( get_post_meta( $order_id, '_orddd_timestamp', true ) == '1531785600' ) {
            $order->update_status( 'on-hold' );
        }       
    }
}

唯一的区别是 strtotime 和常量字符串。我检查了元值,它与 strtotime ('明天')完全相同。
任何想法为什么这不起作用?
因为我需要它始终是明天的时间戳。

谢谢。

【问题讨论】:

  • 为什么要与单个固定的 unix 时间戳值进行比较?你知道这不是“一天”,而是一秒钟,对吧?因此,您想要在这里获得的所有相关订单,都将当天的特定秒数设置为订单时间戳......?
  • 您是否尝试将strtotime('tomorrow') 分配给变量并进行比较?
  • @CBroe 你说得对,所有交货日期格式都设置为该特定时间,日期为 00:00:00。这很不寻常,我知道。
  • @OutsourceWordPress 是的,我确实尝试过,甚至将元值放在变量中并尝试比较它,但不起作用。
  • 您是否尝试过回显strtotime('tomorrow'),它回显相同的“1531785600”(只是为了确认时区问题)?

标签: php wordpress woocommerce


【解决方案1】:

试试这个if ( get_post_meta( $order_id, '_orddd_timestamp', true ) == (string)strtotime('tomorrow') ),让我知道它是否有效。

【讨论】:

  • 谢谢,我试过了,还是不行,条件没有触发。
  • 您是否尝试过将 meta 和 'strtotime' 值作为字符串分配到单独的变量中并比较两者?
  • 我做到了,这是我尝试的第一件事,但没有奏效。没关系,我将尝试使用不同的方法来解决这个问题,这样简单的任务已经花费了太多时间。感谢您的帮助我的朋友,感谢它。
  • 那么你的元值数据应该有一些问题,最后尝试提醒一下。
  • 其实我用了一个导出插件,它可以导出元值等。我明天和strtotime做了一个并排比较,它们完全一样,没有多余的空格或任何其他字符。奇怪..
猜你喜欢
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2021-04-24
相关资源
最近更新 更多