字段名称应为uwcc_settings[uwcc_checkbox_field_1][]
, i、 e.将字段转换为数组。
其次,当保存为数组时,应该使用in_array()
以及checked()
作用但首先,让我们把uwcc_checkbox_field_1
将选项的值转换为变量:
$uwcc_checkbox_field_1 = isset( $options[\'uwcc_checkbox_field_1\'] ) ?
(array) $options[\'uwcc_checkbox_field_1\'] : [];
现在你打电话
checked()
像这样—这个
1
, 例如,在第一行中,表示默认值(如
<input value="Mastercard" type="checkbox".../>
) 是
Mastercard
:
checked( in_array( \'Mastercard\', $uwcc_checkbox_field_1 ), 1 )
checked( in_array( \'Visa\', $uwcc_checkbox_field_1 ), 1 )
checked( in_array( \'Amex\', $uwcc_checkbox_field_1 ), 1 )
完整代码,已尝试(&T);测试工作:(为清晰起见,重新缩进)
function uwcc_checkbox_field_1_render() {
$options = get_option( \'uwcc_settings\', [] );
$uwcc_checkbox_field_1 = isset( $options[\'uwcc_checkbox_field_1\'] )
? (array) $options[\'uwcc_checkbox_field_1\'] : [];
?>
<input type=\'checkbox\' name=\'uwcc_settings[uwcc_checkbox_field_1][]\' <?php checked( in_array( \'Mastercard\', $uwcc_checkbox_field_1 ), 1 ); ?> value=\'Mastercard\'>
<label>Mastercard</label>
<input type=\'checkbox\' name=\'uwcc_settings[uwcc_checkbox_field_1][]\' <?php checked( in_array( \'Visa\', $uwcc_checkbox_field_1 ), 1 ); ?> value=\'Visa\'>
<label>Visa</label>
<input type=\'checkbox\' name=\'uwcc_settings[uwcc_checkbox_field_1][]\' <?php checked( in_array( \'Amex\', $uwcc_checkbox_field_1 ), 1 ); ?> value=\'Amex\'>
<label>Amex</label>
<?php
}
不要忘记引用复选框值;e、 g。
\'Mastercard\'
而不是
Mastercard
.见下文,假设
Mastercard
不是PHP常量:
checked( $options[\'uwcc_checkbox_field_1\'], Mastercard ) // bad
checked( $options[\'uwcc_checkbox_field_1\'], \'Mastercard\' ) // good
checked( in_array( Mastercard, $uwcc_checkbox_field_1 ), 1 ) // bad
checked( in_array( \'Mastercard\', $uwcc_checkbox_field_1 ), 1 ) // good