我的模板中有一个复选框,可以启用(选中)或禁用(取消选中)送货选项。
我的目的是仅在未选中复选框的情况下显示div
一些信息 - 禁止发货。
我正在尝试插入到我的模板中并使用以下If语句:
<!-- Show DIV if checkbox is unchecked - false -->
<?php if( get_user_meta( $post->post_author, '_shipping_checkbox', false ) == 'yes' ) { ?>
<div id="info">
<p>Shipping is currently disabled</p>
</div>
<?php } ?>
但这似乎不起作用且DIV没有出现。
如果我尝试使用TRUE
而不是false来测试它,那么如果我选中复选框并将语句更改为true
<?php if( get_user_meta( $post->post_author, '_shipping_checkbox', true ) == 'yes' ) { ?>
然后div现在正确显示。
我在这里做错了什么?
或者我应该采取不同的方式吗?
我正在努力避免使用Jquery和Javascript,我只是不知道如何正确使用脚本。
答案 0 :(得分:1)
我可以看到您的代码存在两个问题。
您没有测试用户元是否为false。如果用户meta等于"yes"
,您的条件是测试。
get_user_meta()
的第三个参数是一个布尔值,如果为true则返回元数据字段的值,如果为false则返回一个数组。
这样的事情应该做你正在寻找的事情:
<!-- Show DIV if checkbox is unchecked - false -->
<?php if( get_user_meta( $post->post_author, '_shipping_checkbox', true) !== 'yes' ) { ?>
<div id="info">
<p>Shipping is currently disabled</p>
</div>
<?php } ?>
如果元检查并保存为&#34;是&#34; (WooCommerce将其所有布尔值作为&#34;是&#34; /&#34;否&#34;。然后您可以推断,如果值不等于是,那么运费是残疾人。