Gancho se alguém salvar as opções do plugin?

2

Eu escrevi um plugin que tem várias opções e caso o usuário salve as opções, um arquivo CSS será gerado. Minha intenção é que o CSS só seja criado quando as opções forem salvas e não quando alguém visitar a página e o CSS for criado toda vez.

Então eu preciso de um gancho que ative quando alguém salva as opções. Eu tentei assim:

    public function __construct( $file ) {
        $this->options = get_option('clb_plugin_options');
        add_filter( 'pre_update_option_clb_plugin_options', array( $this, 'generate_options_css' ) );       
}

    public function generate_options_css() {
[doing all css related stuff)

        return $this->options;

}

Mas, neste caso, não são levadas em consideração quaisquer alterações que eu tenha feito no formulário, pois salvo as opções em $ this- > opções que já estão lá. Então, como posso fazer isso para ligar depois que alguém salva as opções do plugin ...?

    
por Torben 06.02.2015 / 10:23

1 resposta

11

Embora eu não concorde com o seu propósito, aqui os ganchos de ação que você pode usar (você não nos mostrou o que você está usando para salvar as opções, então eu não posso dizer qual é o melhor).

Se você usa add_option para salvar opções:

add_option_ {option_name} : Executa após a opção com nome "option_name" foi adicionada usando a função add_option() . Por exemplo, para a opção com o nome "foo":

add_action('add_option_foo', function( $option_name, $option_value ) {
     //....
}, 10, 2);

add_option : executa antes de ser adicionada uma opção ao banco de dados. Exemplo:

add_action('add_option', function( $option_name, $option_value ) {
     //....
}, 10, 2);

added_option : executa após uma opção foi adicionada. Exemplo:

add_action('added_option', function( $option_name, $option_value ) {
     //....
}, 10, 2);

Também existem ações analógicas para delete_option() : delete_option_{option_name} , delete_option e deleted_option

Se você usa update_option para salvar opções:

( update_option pode ser usado também para salvar / criar novas opções)

update_option_ {option_name} : Executa após a opção com o nome "option_name" foi atualizada. Por exemplo, para a opção com o nome "foo":

add_action('update_option_foo', function( $old_value, $value ) {
     //....
}, 10, 2);

update_option : executa antes de uma opção ser atualizada. Exemplo:

add_action('update_option', function( $option_name, $old_value, $value ) {
     //....
}, 10, 3);

updated_option : executa após uma opção foi atualizada. Exemplo:

add_action('updated_option', function( $option_name, $old_value, $value ) {
     //....
}, 10, 3);
    
por cybmeta 06.02.2015 / 11:31