如何对 update_post-meta 进行额外计算

问题描述 投票:0回答:1

我有一个自定义帖子类型,我想根据我在名为“交货日期”的自定义字段中输入的日期输出两个元框(“delivery_date”和“orderby_date”)。除了让交货日期填充“delivery_date”框中之外,我还希望它通过计算以在“orderby_date”框中显示订购日期。有没有办法用 update_post_meta 来做到这一点?

这是我的交货日期元框的代码:

<?php
function wpt_single_menu_deliverydate() {
    global $post;
    echo '<input type="hidden" name="singlemenumeta_noncename" id="singlemenumeta_noncename" value="' .
    wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
    $deliver = get_post_meta($post->ID, '_deliverydate', true);
    echo '<input type="datetime-local" name="_deliverydate" value="' . $deliver  . '" class="widefat" />';
} ?>

这是我的代码,用于根据该数据输出两个自定义元框(在我的保存元函数中):

<?php
if(get_post_meta($post->ID, $key, FALSE)) { 
    update_post_meta($post->ID, $key, $value);
    update_post_meta( $post_id, 'delivery_date', stripslashes( $_POST['_deliverydate'] ) );
    update_post_meta( $post_id, 'orderby_date', stripslashes( $_POST['orderby_date'] ) );
?>

我的问题是如何组合

date('Y-m-d', strtotime('-1 week last Sunday'));

因此我的订购日期是交货日期之前的星期日?

wordpress custom-fields strtotime
1个回答
0
投票

不可否认,我是一个菜鸟,从看起来相关的片段中拼凑出代码。我的解决方案是添加第二个“update_post_meta”并添加日期(strtotime())以将值返回到我创建的自定义字段中。然后我为该实例创建了一个参数,这样我就可以修改第二个实例的日期。

这有效:

if(get_post_meta($post->ID, $key, FALSE)) { 
    update_post_meta( $post_id, 'delivery_date', stripslashes( $_POST['delivery_date'] ) );
    update_post_meta( $post_id, 'delivery_date', date("Y-m-d", strtotime( $_POST[('_deliverydate')] )) );
$delivery = date("Y-m-d", strtotime( $_POST[('_deliverydate')] ));
    update_post_meta( $post_id, 'orderby_date', stripslashes( $_POST['orderby_date'] ) );
    update_post_meta( $post_id, 'orderby_date', date("Y-m-d", strtotime( "$delivery - 1 week last Sunday" )) );

因此,在我的新交付日期元框中输入日期并更新我的帖子后,将创建两个自定义字段。一个返回“交货日期”元框的值,另一个转换为前最后一个星期日以返回我的订购日期。

© www.soinside.com 2019 - 2024. All rights reserved.