Trigger Customizer salvando o processo apenas com Javascript

4

Estou trabalhando em um tema personalizado que usa a API de personalização do WordPress para permitir que o usuário toque partes do conteúdo de seu site, basicamente a primeira página que ele pode modificar adicionando / removendo blocos personalizados, como as postagens mais recentes. página crianças, etc. Blacks estrutura é coletada e preenchida em uma entrada personalizada.

Tudo funciona bem, exceto para salvar, o Customizador parece ter alguma segurança que me impede de salvar o valor de entrada: para salvá-lo, eu preciso disparar manualmente um evento de 'pressionamento de tecla' JavaScript selecionando a entrada e pressionando um chave. Se não, o botão de envio fica desativado.

Navegando pelo /wp-admin/js/customize-controls.js eu consigo ativar o botão de envio:

wp.customize.trigger('change')

Mas mesmo que o salvamento esteja desbloqueado, ele não tem nenhum efeito: o valor de entrada não é enviado para admin_ajax.php e meus dados não são salvos.

Alguma ideia de como eu poderia forçar o gatilho na API Javascript para salvar meus dados? Não consegui encontrar um documento detalhado sobre a API JS do WP, o que também ajudou se eu a perdesse em algum lugar.

    
por Askelon 18.07.2013 / 19:43

1 resposta

3

Em vez de usar o jQuery para atualizar o valor da entrada personalizada, use a função wp.customize do objeto set() (encontrada em customizar-base.js ):

wp.customize( key, function ( obj ) {
    obj.set( newValue );
} );

Em que key é a configuração e newValue é o valor atualizado.

Além disso, é importante observar que, na classe que estende WP_Customize_Control , use $this->get_link() para colocar o atributo de dados data-customize-setting-link na entrada personalizada (encontrada em classe-wp-customize-control.php ).

    
por Matthew 10.04.2014 / 00:53