我正在开发一个wordpress插件。付款后,我有一个变量发送到数据库,即ispayment并将其设置为1。如果尚未付款,则该变量不会发送到数据库...因此在某些情况下,对于特定的职位ID,变量“ ispayment”不存在。

我现在正在尝试根据是否存在此变量来编写条件语句。

我要说的是,如果wedding_form_final_submit = 1并且没有ispayment变量-$ status = foo。否则,如果wedding_form_final_submit = 1 AND ispayment = 1,则$ status = bar。

这是我到目前为止的内容:

if(get_post_meta($post_id,'wedding_form_final_submit', 1) && get_post_meta($post_id, 'ispayment',false)) {
            $status = 'Form Complete';
        } elseif(get_post_meta($post_id,'wedding_form_final_submit', 1) && get_post_meta($post_id, 'ispayment',true)) {
            $status = 'Deposit Paid';
        } else {
            $status = '';
        }


当前,它仅返回“ Form Complete”,但用于应返回“已付押金”的条目,应显示Form Complete的条目仅为空白。

我相信我的问题是,对于我的第一个声明,变量ispayment不存在。不过,我该如何修正呢?

最佳答案

如果您要检索的帖子元不存在,则下面的代码可能会执行此操作,您的变量只会返回空

// get post meta value 'ispayment'
$paid = get_post_meta( $post_id, 'ispayment', true );

//Check where post meta exists and value is 1
if ( isset($paid) && $paid === '1' ) {
     $status = 'Form Complete';
//If post meta doesn't exist or value is not 1.
} else {
    $status = 'Deposit Paid';
}

//or shorter

$paid = get_post_meta( $post_id, 'ispayment', true );

$status = ( isset($paid) && $paid === '1' ) ? 'Form Complete' : 'Deposit Paid';


只需在其中添加其他代码

关于php - PHP根据参数是否在数据库中编写条件语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35041313/

10-12 15:50