我需要在评论后表单(确切地说是Woocommerce产品评论表单)中添加多个复选框,以便人们选择产品最适合哪种健康状况。选择X个复选框并留下书面注释后,我需要将这些值作为数组存储在commentmeta表中。然后,我需要将此人评论中的每个选中复选框值打印为无序列表。
我陷入困境的地方是在commentmeta中存储多个复选框。以下是我迄今为止创建复选框的方法:
add_action( \'comment_form_logged_in_after\', \'additional_fields\' );
add_action( \'comment_form_after_fields\', \'additional_fields\' );
function additional_fields () {
echo \'<p class="comment-form-condition">\' .
\'<label for="condition">\'. __(\'Conditions\') . \'<span class="required">*</span>: </label> <br />
<span class="commentconditionbox">\';
$conditions = array(
"cancer" => "Cancer",
"crohns" => "Chrons",
"fibromyalgia" => "Fibromyalgia"
);
foreach( $conditions as $condition )
echo \'<span class="comment-condition"><input type="checkbox" name="condition" id="condition" value="\'. $condition .\'"/> \'. $condition .\'</span>\';
echo \'</span></p>\';
}
下面是我存储数据的地方:
add_action( \'comment_post\', \'save_comment_meta_data\' );
function save_comment_meta_data( $comment_id ) {
if ( ( isset( $_POST[\'condition\'] ) ) && ( $_POST[\'condition\'] != \'\') )
$filtered_condition = wp_filter_nohtml_kses($_POST[\'condition\']);
add_comment_meta( $comment_id, \'condition\', $filtered_condition );
}
不过,这只存储其中一个值。如何将每个选中复选框的值存储为数组?
在网站的其他地方,我需要根据这些值对产品进行排序。因此,如果有两个产品选中了“癌症”复选框,我将通过查询哪些产品具有该元值,在页面上输出这两个产品。