Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Undefined constant "al_local_dia_palestra_settings"

Estou recebendo esse erro no painel de administrador do wordpress

Fatal error: Uncaught Error: Undefined constant "al_local_dia_palestra_settings" in C:\xampp\htdocs\alura-palestras\wp-content\plugins\al_local_dia_palestra\includes\al_local_dia_palestra_settings.php:25 Stack trace: #0 C:\xampp\htdocs\alura-palestras\wp-includes\class-wp-hook.php(292): al_local_dia_palestra_menu_pagina('') #1 C:\xampp\htdocs\alura-palestras\wp-includes\class-wp-hook.php(316): WP_Hook->apply_filters('', Array) #2 C:\xampp\htdocs\alura-palestras\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\alura-palestras\wp-admin\admin.php(259): do_action('toplevel_page_l...') #4 {main} thrown in C:\xampp\htdocs\alura-palestras\wp-content\plugins\al_local_dia_palestra\includes\al_local_dia_palestra_settings.php on line 25

Já dei uma boa olhada e o arquivo está igual como no vídeo

2 respostas

Aqui está o conteudo do arquivo de settings

<?php

add_action('admin_menu', 'al_local_dia_palestra_menu');

function al_local_dia_palestra_menu(){
    add_menu_page(
        'Local Palestra',
        'Local Palestra',
        'manage_options',
        'local-palestra',
        'al_local_dia_palestra_menu_pagina',
        'dashicons-location-alt',
        -1
    );
}

//renderiza a página
function al_local_dia_palestra_menu_pagina(){
    ?>
        <div>
            <h1>Local Palestras</h1>
            <form method="post" action="options.php">
                <?php
                    do_settings_sections('local-palestra');
                    settings_fields(al_local_dia_palestra_settings);
                    submit_button();
                ?>
            </form>
        </div>
    <?php
}

add_action('admin_menu', 'al_local_dia_palestra_secao');

function al_local_dia_palestra_secao(){

    //seção
    add_settings_section(
        'al_local_dia_palestra_secao',
        'Configurações do local da palestra',
        'al_local_dia_palestra_campos_secao_detalhes',
        'local-palestra'
    );

    //endereço
    add_settings_field(
        'al_local_dia_palestra_endereco',
        'Endereço',
        'al_local_dia_palestra_endereco',
        'local-palestra',
        'al_local_dia_palestra_secao'
    );

    register_setting(
        'al_local_dia_palestra_settings',
        'al_local_dia_palestra_endereco'
    );

    //Cidade
    add_settings_field(
        'al_local_dia_palestra_cidade',
        'Cidade',
        'al_local_dia_palestra_cidade',
        'local-palestra',
        'al_local_dia_palestra_secao'
    );

    register_setting(
        'al_local_dia_palestra_settings',
        'al_local_dia_palestra_cidade'
    );

    //Data
    add_settings_field(
        'al_local_dia_palestra_data',
        'Data',
        'al_local_dia_palestra_data',
        'local-palestra',
        'al_local_dia_palestra_secao'
    );

    register_setting(
        'al_local_dia_palestra_settings',
        'al_local_dia_palestra_data'
    );
}
//função callback seção
function al_local_dia_palestra_campos_secao_detalhes(){
    ?>
        <p>Insira os dados do endereço, cidade e data da próxima palestra da Alura</p>
    <?php
}

//função callback endereço
function al_local_dia_palestra_endereco(){
    ?>
        <input type="text" id="al_local_dia_palestra_endereco"
               name="al_local_dia_palestra_endereco" required>

    <?php
}

//função callback cidade
function al_local_dia_palestra_cidade(){
    ?>
    <input type="text" id="al_local_dia_palestra_cidade"
           name="al_local_dia_palestra_cidade" required>

    <?php
}

//função callback data
function al_local_dia_palestra_data(){
    ?>
    <input type="date" id="al_local_dia_palestra_data"
           name="al_local_dia_palestra_data" required>

    <?php
}
solução!

Oi, Natan, tudo bem?

Na linha settings_fields(al_local_dia_palestra_settings);, o nome da função precisa vir envolta de aspas simples, dessa forma:

settings_fields('al_local_dia_palestra_settings');

Dessa forma, o erro não ocorrerá.

Testa e me fala se deu certo!