如何让in_array()与get_option()一起工作?

时间:2014-05-01 20:24:48

标签: php wordpress woocommerce

我的管理设置中有两个自定义字段,允许我输入两组有效的邮政编码('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 ACodes B)。

我也尝试将数组(get_option('field_name'))直接放在if语句中,并且也没有做任何事情。 in_array不能用于获取管理员自定义字段吗?

1 个答案:

答案 0 :(得分:0)

如果$codes_a是这样的字符串:08847,032434,35545,那么您需要使用explode()将其转换为数组。我怀疑你真正想要的是这个:

if ( in_array( "55410", explode( ',', $codes_a ) ) {
    echo "Codes A";
}