嚕嚕噠
2022-12-23 14:45:50
我正在嘗試將客戶訂單備注字段移動(dòng)到另一個(gè)字段組,但由于其他插件覆蓋,我也需要覆蓋 WooCommerce 模板文件,因此我需要移動(dòng)此代碼: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 ”。現(xiàn)在我得到了重復(fù)的字段,如何防止 foreach 循環(huán)中的重復(fù)?
2 回答

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以維護(hù)一個(gè)array以跟蹤您已經(jīng)看到的字段,這樣它們就不會(huì)被再次添加。
$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貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用 array_unique() 您的代碼將如下所示:
foreach ( array_unique($checkout->get_checkout_fields( 'order' )) as $key => $field ) : woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); endforeach;
添加回答
舉報(bào)
0/150
提交
取消