como testar uma atualização de tema

4

Existe uma maneira de testar um tema através do atualizador automático?

Temos um tema em que uma versão apresentará uma nova funcionalidade que pode interromper os temas existentes. Gostaria de verificar a versão anterior do tema na atualização e incluir algum código específico de atualização se a atualização estiver entre duas versões específicas.

Primeiro, achei que poderia usar after_theme_switch hook, mas o tema é usado principalmente como tema pai e provavelmente será atualizado sem ser o tema ativo. Eu olhei para o uso de upgrader_pre_install e upgrader_post_install ganchos, mas como testá-los?

O final seria tê-lo como um teste de unidade, mas qualquer outra maneira de fazer o mock-upgrade seria ótimo. O upload de um arquivo zip é tratado como uma instalação e não como upgrade.

Isso é possível mesmo dentro de um tema, devemos procurar escrever um plugin de atualização simulada?

    
por middlesister 25.01.2014 / 15:49

2 respostas

2

Você está fazendo duas perguntas. Sendo o único como você pode testar uma atualização e o outro é como você pode executar o código após uma atualização.

Você pode testar uma atualização de tema enviando as atualizações por conta própria e testando-a se funcionar. Você pode fazer isso usando GitHub Updater .

Se você deseja executar o código somente após uma atualização, não há solução principal. Existem duas maneiras de funcionar.

  1. Você salva a versão do tema no banco de dados, com isso você pode calcular qual versão ou atualização é e, em seguida, executar o código de atualização.
  2. Se você estiver incluindo novas opções na atualização, poderá verificar se as novas opções já existem e, caso contrário, executar o código de atualização.

Acho que o after_setup_theme deve ficar bem.

    
por grappler 26.01.2014 / 10:55
0

Esta é a solução que encontrei até agora. Meu código pode ser encontrado nesta essência: enlace

Busque a versão anterior do tema e armazene-a em um transiente em upgrader_pre_install . Compare a versão do tema anterior em upgrader_post_install e veja se a atualização é de uma versão específica. Definir um sinalizador no transitório, se for.

Verifique o transiente e se o sinalizador estiver definido, faça o que precisar e exclua o transiente depois. Eu tentei o upgrader_process_complete hook, mas parece que não funcionou, então eu adicionei isso no init hook. Isso significa que o código será executado na próxima atualização da página, mas como o transiente está definido para viver por uma hora, posso viver com isso.

Os testes de unidade estão passando, e eu tentei colocar o código em um plugin enquanto usava o atualizador automático para atualizar de uma versão antiga para a versão atual e parece fazer o que eu quero.

O problema é que preciso executar este código de alguma forma.

    
por middlesister 27.01.2014 / 18:49