我正在尝试将客户订单注释字段移至另一个字段组,但是由于其他插件覆盖,我也需要覆盖WooCommerce模板文件,因此需要移动以下代码:
foreach ( $checkout->get_checkout_fields( 'order' ) as $key => $field ) :
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
endforeach;
来源:“ mytheme / woocommerce / checkout / form-shipping.php ”
到:“ mytheme / woocommerce / checkout / review-order.php ”。
现在我要获取重复的字段,如何防止在foreach循环中重复?
答案 0 :(得分:3)
您可以维护array
来跟踪您已经看到的字段,以免再次添加。
$fields_seen = [];
foreach ( $checkout->get_checkout_fields( 'order' ) as $key => $field ) :
if(!in_array($field, $fields_seen)) {
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
$fields_seen[] = $field;
}
endforeach;
in_array的参考页:PHP in_array
答案 1 :(得分:1)
您可以使用array_unique() 您的代码将如下所示:
foreach ( array_unique($checkout->get_checkout_fields( 'order' )) as $key => $field ) :
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
endforeach;