update_post_meta не работает в функции

Я пытаюсь взять некоторые метаданные полей из поля (созданные через плагин ACF) и сохранить его как мета-сообщение с функцией. Это то, что я придумал:

function tps_create_slotcode($post_id) { if (get_post_type($post_id) == 'space-rental') { $slotCodes = array(); while (have_rows('dates_and_times', $post_id)) { the_row(); $date = get_sub_field('date'); $dateStamp = strtotime($date); $start = get_sub_field('start_time'); $end = get_sub_field('end_time'); $space = get_sub_field('space'); //term id $spaceTerm = get_term($space, 'spaces'); $slotCodes[] = $spaceTerm->slug.'_'.$start.'_'.$date; } update_post_meta($post_id, 'slotCodes', $slotCodes); } } add_action('acf/save_post', 'tps_create_slotcode', 40); 

Я тестировал всю переменную, чтобы убедиться, что они производят значение, и они есть, но вызов update_post_meta ничего не делает.

Если я поставлю update_post_meta INSIDE цикл, он работает, но сохраняет только последний результат (очевидно), так как это последняя итерация цикла. Это будет этот код:

  function tps_create_slotcode($post_id) { if (get_post_type($post_id) == 'space-rental') { while (have_rows('dates_and_times', $post_id)) { the_row(); $date = get_sub_field('date'); $dateStamp = strtotime($date); $start = get_sub_field('start_time'); $end = get_sub_field('end_time'); $space = get_sub_field('space'); //term id $spaceTerm = get_term($space, 'spaces'); $slotCodes = $spaceTerm->slug.'_'.$start.'_'.$date; update_post_meta($post_id, 'slotCodes', $slotCodes); } update_post_meta($post_id, 'slotCodes', $slotCodes); } } add_action('acf/save_post', 'tps_create_slotcode', 40); 

Может ли кто-нибудь сказать мне, что я делаю неправильно в первом примере? Будет ли update_post_meta не сохранять массив данных или что-то еще?