我的管理设置中有两个自定义字段,允许我输入两组有效的邮政编码('woocommerce_local_delivery_zone_a'和'woocommerce_local_delivery_zone_b')。
我无法弄清楚为什么这段代码不起作用:
$codes_a = get_option( 'woocommerce_local_delivery_zone_a' );
$codes_b = get_option( 'woocommerce_local_delivery_zone_b' );
if ( in_array( "55410", array( $codes_a ) )) {
echo "Codes A";
}
if ( in_array( "55410", array( $codes_b ) )) {
echo "Codes B";
}
如果我回显$codes_a
或$codes_b
(在“if”语句之外),则会在页面上返回邮政编码字符串。如果我接受该字符串并直接在变量位于if (in_array( "55410", array( NUMBERS HERE )))
的位置输入我正在尝试回显的文本(Codes A
或Codes B
)。
我也尝试将数组(get_option('field_name'))直接放在if语句中,并且也没有做任何事情。 in_array不能用于获取管理员自定义字段吗?
答案 0 :(得分:0)
如果$codes_a
是这样的字符串:08847,032434,35545
,那么您需要使用explode()
将其转换为数组。我怀疑你真正想要的是这个:
if ( in_array( "55410", explode( ',', $codes_a ) ) {
echo "Codes A";
}