获得post meta返回""当meta在代码中设置而不是使用post edit页面时

时间:2016-11-17 17:57:15

标签: php wordpress metadata

在管理界面中,我有一个输入框。用户选择输入到输入框中的日期。当用户单击按钮时,日期将被放入名为" _yl_lease_security_refund_date"的元字段中。通过ajax调用使用update_post_meta的方法。我可以验证update_post_meta是否有效,因为我然后执行get_post_meta并将值重新发送回ajax响应。但是,如果我离开屏幕然后回到它,get_post_meta调用将返回""作为输入框的值,除非通过编辑帖子页面更改元值。如何让我的元值更新保持不变?这是我的ajax调用的方法:

function yeager_srr_post_date_refunded() {

$result = 'Not Updated';
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
    $is_meta_updated = update_post_meta( $_POST['lease_id'], '_yl_lease_security_refund_date', $_POST['refund_date'] );
    $meta_value = get_post_meta( $_POST['lease_id'], '_yl_lease_security_refund_date', true);

    if( $is_meta_updated !== false) {
            $result = 'Saved';
    }
    echo $result . '-' . $_POST['lease_id'] . '-' . $_POST['refund_date'] . '-meta_value=' . $meta_value; //. $value;       die();
}
else {
    wp_redirect( get_permalink( $_POST['lease_id'] ) );
    exit();
}
}

以下是我使用的代码,如果值已经退出,则将值放在输入框中。

$security_refund_meta_value = get_post_meta( $row[6], '_yl_lease_security_refund_date', true);
echo '<td>' .
'<input type="text" name="date_refunded_' . $row[6] .
'" id="date_refunded_' . $row[6] .
'" value="' . $security_refund_meta_value .
'" class="datepicker srr-refund-input" data-leaseid="' . $row[6] .
'" data-refunddate="' . ( empty( $security_refund_meta_value ) ? '' : $security_refund_meta_value ) . '">' . '</td>';

0 个答案:

没有答案