Я создал цикл foreach, который был адаптирован из этого сообщения на форуме .
Но он всегда останавливается после первой итерации.
Почему это происходит?
Предполагается проверить, не совпадает ли поле $ с чем-либо в массиве $ skip, а затем выполнить некоторый код.Но код выполняется только в первом цикле, а затем завершается.
function bg_calculation_save ( $pieces ) {
$skip = array('company_name', 'logo', 'screenshot', 'highlight_1', 'highlight_2', 'highlight_3', 'awards');
foreach ($pieces[ 'fields' ] as $field => $value) {
if (!in_array($field, $skip)) {
// Calculate the points
$points = bg_calculate_points($field) * bg_score_weights($field);
// Set the value of the "$field_points" field
$pieces[ 'fields' ][ $field . '_points' ][ 'value' ] = $points;
//If the field isn't being saved right now, add it to the list to be saved
if (!in_array( $pieces[ 'fields_active' ])) {
$pieces[ 'fields_active' ][] = $field;
}
return $pieces;
}
}
}
add_filter( 'pods_api_pre_save_pod_item_vpn', 'bg_calculation_save' );