Ошибка при выполнении функции metabox: недопустимое смещение строки и отсутствие сохранения - PullRequest
0 голосов
/ 30 апреля 2020

Я выполняю функцию в php для метабокса в проекте WordPress, но когда я пытаюсь сохранить некоторые значения в этом метабоксе, появляется сообщение об ошибке

Предупреждение: недопустимое смещение строки 'horar ios 'в D: ... \ normal-metabox-turmas. php в строке 63

и не сохраняет значение. Ниже приведены некоторые части функции metabox и функции сохранения

// Metabox function
function regular_get_post_meta_turmas() {

    global $post;

    $locais = get_post_meta($post -> ID, 'locais', true);

    $fields = array(
        'local' => 'Nome do local',
        'endereco' => 'Endereço',
        'cidade' => 'Cidade',
        'cep' => 'CEP',
        'telefone_1' => 'Telefone 1',
        'telefone_2' => 'Telefone 2',
        'email' => 'E-mail',
        'site' => 'Site',
        'observacoes' => 'Observações'
    );

    $horariosfields = array(
        'dias',
        'hora_i',
        'hora_f'
    );

    $dayfields = array(
        'seg' => '0seg',
        'ter' => '1ter',
        'qua' => '2qua',
        'qui' => '3qui',
        'sex' => '4sex',
        'sab' => '5sab',
        'dom' => '6dom'
    );  

    //[....]

            <?php foreach ( (array)$locais as $local ) { ?>

                <?php if (!empty($local)) { ?>
                    <?php foreach ( (array)$local['horarios'] as $date_and_time ) { ?>  //This is line 63

                    //[....]

// Save function

<?php
add_action('save_post', 'save_regular_post_meta', 1);
function save_regular_post_meta($post_id){

    if ( isset($_POST['regular_cpt_nonce']) && !wp_verify_nonce( $_POST['regular_cpt_nonce'], basename(__FILE__) ) ) return;
    // check autosave  
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    // check permissions and verify if this is our post type saving.
    if ( get_post($post_id)->post_type != 'regular' ) {
        return;
    } elseif (!current_user_can('edit_post', $post_id)) { 
        return;
    }

    $meta_data = array(
        'Local' => array(
            'value' => isset($_POST['locais']),
            'name' => 'locais'
            )
    );

    $lista_de_locais = $meta_data['Local']['value'];
    if ( is_array($lista_de_locais) && !empty($lista_de_locais) ) {
        sort($lista_de_locais);
        if ( is_array($lista_de_locais['horarios']) && !empty($lista_de_locais['horarios']) ) {
            sort($lista_de_locais['horarios']);
        }
    }

    foreach ($meta_data as $data) {
        update_post_meta($post_id, $data['name'], $data['value']);
    }
}
?>

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...