我正在尝试将客户订单备注字段移动到另一个字段组,但由于其他插件覆盖,我也需要覆盖 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 循环中的重复?
2 回答

摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
您可以维护一个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;

慕仙森
TA贡献1827条经验 获得超8个赞
您可以使用 array_unique() 您的代码将如下所示:
foreach ( array_unique($checkout->get_checkout_fields( 'order' )) as $key => $field ) : woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); endforeach;
添加回答
举报
0/150
提交
取消