Que usar para executar código durante o salvamento de uma página de configurações do plugin?

4

Estou escrevendo um plugin com uma página de configurações / opção e quero que algum código php seja executado sempre que alguém salvar as configurações nessa página e apenas na página. Quais ações eu preciso fazer para conseguir isso?

    
por Manny Fleurmond 07.01.2012 / 17:47

2 respostas

3

Se você estiver usando a API de configurações , use um retorno de retorno de limpeza:

register_setting( $option_group, $option_name, $sanitize_callback );

O mito é que o $sanitize_callback é realmente um filtro para suas opções quando é salvo no banco de dados. Este é o lugar onde você pode fazer algo com seu código personalizado.

Este é o código de amostra:

register_setting( 'wpse38180', 'wpse38180', 'sanitize_wpse38180' );

function sanitize_wpse38180( $options )
{
    // Do anything you want

    return $options;
}
    
por Anh Tran 11.01.2012 / 17:52
1

Existe um filtro de pré-atualização , aplicado logo após o filtro de higienização. É chamado de pre_update_option_ nome da opção e assume os valores novos e antigos da opção como parâmetros. Use assim:

register_setting( $my_option_group , $my_option_name );
// 10 is the filter priority, 2 is the number of arguments
add_filter( 'pre_update_option_' . $my_option_name , 'my_callback', 10, 2 );

function my_callback( $newvalue, $oldvalue ) {
    // $newvalue has already been sanitized, but not yet saved
    // do whatever you like here
    return 'filtered value';
}

O benefício de usar isso é que a intenção é mais clara e você não precisa obter manualmente o valor da opção antiga (se necessário) desde que ela é passada para você.

Este filtro é específico para um campo, por isso, se você quiser que ele seja executado uma vez ao salvar opções, basta adicioná-lo a apenas um campo.

    
por Bennett McElwee 13.06.2013 / 05:12