我正在开发一个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/