COMO CRIAR UM PLUGIN SEM
SER DESENVOLVEDOR
É possível utilizar códigos simples, que muitas vezes existem
prontos na internet, para resolver algumas necessidades
de alterações em um site WordPress. Para facilitar a
manutenção, o correto é transformar essas
personalizações em um plugin. Nesta palestra veremos
como isso é mais simples do que parece.
Marcos Alexandre
Formado em Web Design pela Faculdade Opet e desenvolvedor
freelancer, trabalhando com WordPress desde 2012. É membro da
comunidade WordPress Brasil desde 2015, contribuindo com
traduções e com a organização dos eventos de WordPress em
Curitiba.
Marcos Alexandre
https://profiles.wordpress.org/marcosalexandre/
https://twitter.com/marcos_alex82
https://www.facebook.com/marcos.alexandre.33821
https://www.instagram.com/marcos_alexandre82/
INSERINDO OU REMOVENDO
UMA FUNCIONALIDADE
Em nossos projetos, muitas vezes precisamos de um
comportamento específico. Esse comportamento muitas
vezes pode ser obtidos através de um filtro no PHP, o qual
retira ou acrescenta uma funcionalidade ao nosso tema
WordPress.
Ao buscarmos uma solução na web, geralmente
nos deparamos com algumas soluções prontas.
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
QUAIS CÓDIGOS PODEM SE
TORNAR UM PLUGIN
Basicamente, quase todos o códigos que encontramos na
internet e que utilizamos no arquivo functions.php do tema
podem se tornar um plugin.
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
VANTAGENS EM SE UTILIZAR
ESTE CÓDIGO COMO PLUGIN
O tema deve ser responsável pela parte visual do projeto.
Funcionalidades devem ser mantidas em plugins, pois
dessa forma, a manutenção futura fica muito mais fácil.
Além disso, se o tema for um tema comprado e não
estiver utilizando um tema descendente, qualquer
edição no código dele será sobrescrita em uma
atualização.
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
EXEMPLO DE UM CÓDIGO
QUE PODE SER UM PLUGIN
Recentemente precisei remover os produtos relacionados
em um projeto que utilizava WooCommerce. Pesquisando
sobre os filtros que poderiam me ajudar, me deparei com
o seguinte código:
add_filter('woocommerce_product_related_posts_query',
'__return_empty_array', 100);
O código acima verifica quando o filtro responsável pela
exibição dos produtos relacionados é chamado e retorna
um array vazio.
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN PRECISA TER
SEGURANÇA
O código anterior sozinho já funcionaria, mas para
melhorá-lo, quando transformamos em um plugin,
podemos fazer algumas verificações. A primeira delas é
garantir que o arquivos não possa ser acessado
diretamente, inserindo logo no começo do arquivo, o
seguinte código:
if ( ! defined( 'ABSPATH' ) ) {
exit; // Interrompe a chamada se acessado diretamente
}
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
Além disso, como o filtro era para uma funcionalidade específica
do WooCommerce, ele deve funcionar apenas se o
WooCommerce estiver ativado. Para isso, inseri o código do filtro
dentro de uma verificação da utilização ou não do
WooCommerce:
/** Verificando se o WooCommerce está ativado **/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters(
'active_plugins', get_option( 'active_plugins' ) ) ) ) {
/** Aqui vai o código do filtro **/
}
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
O código PHP completo do plugin ficou assim:
if ( ! defined( 'ABSPATH' ) ) {
exit; // Interrompe a chamada se acessado diretamente
}
/** Verificando se o WooCommerce está ativado **/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters(
'active_plugins', get_option( 'active_plugins' ) ) ) ) {
add_filter('woocommerce_product_related_posts_query',
'__return_empty_array', 100);
}
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
Agora o plugin está praticamente pronto, mas ainda é
necessário inserir os requisitos de cabeçalho (no topo do
arquivo), que são responsáveis pela exibição do nome, url
do site do plugin, descrição, autor, url do site do autor do
plugin, versão do plugin, tipo de licença, url da licença,
domínio do texto, etc. Temos mais detalhes em:
https://developer.wordpress.org/plugins/plugin-
basics/header-requirements/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
O requisito mínimo é o nome do plugin, mas é interessante
incluir o maior número de dados possíveis, como no
exemplo a seguir, que utilizei na criação do meu plugin:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
<?php
/**
* Plugin Name: Remove WooCommerce Product Related
* Plugin URI: https://github.com/marcos-alexandre82/remove-woocommerce-product-related
* Description: Removes, globally, related products in WooCommerce.
* Author: Marcos Alexandre
* Author URI: https://marcosalexandre.dev/
* Version: 1.0.0
* License: GNU General Public License v3.0
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
* Text Domain: remove-woocommerce-product-related
* Domain Path: /languages
* WC tested up to: 5.2.2
*/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
A seguir temos o código PHP completo do plugin. Como a
intenção é enviá-lo para o repositório oficial de plugin do
WordPress, utilizar termos em inglês é a melhor prática, pois
assim ele fica acessível à mais usuários:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
UM PLUGIN NÃO PRECISA SER
COMPLEXO
Agora precisamos salvar o arquivo PHP em uma pasta.
Ambos precisam ter o mesmo nome que utilizamos em
domínio de texto (Text Domain), no nosso caso:
remove-woocommerce-product-related
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
CRIANDO UM ARQUIVO
README PARA SEU PLUGIN
Por último, precisamos criar um arquivo readme.txt. Este
arquivo é o responsável por exibir informações como
descrição, dúvidas frequentes, etc. na página do plugin
no repositório. Para isso exitem duas ferramentas que
auxiliam:
https://generatewp.com/plugin-readme/
https://wordpress.org/plugins/developers/readme-
validator/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
ENVIANDO O PLUGIN PARA O
REPOSITÓRIO OFICIAL
Para enviar o plugin para o repositório oficial do WordPress
é necessário ter uma conta no wordpress.org:
https://br.wordpress.org/
Ao fazer o login, basta acessar o link abaixo e
utilizar o campo de envio no final da página,
enviando um arquivo .zip da pasta contendo os
arquivos do plugin:
https://br.wordpress.org/plugins/developers/add/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
ENVIANDO O PLUGIN PARA O
REPOSITÓRIO OFICIAL
Após o envio, será exibida uma mensagem contendo informações
quanto ao prazo de análise do código pela equipe de plugins e a
quantidade de plugins que estão na fila. Depois desta análise, se ele
for aceito, você receberá um e-mail com o link do repositório SVN do
plugin.
É através deste repositório que você irá enviar o código do
seu plugin, o ícone e o banner que vão ser exibidos na
página do repositório, além de fazer edições no código,
para futuras atualizações, se necessário.
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
ENVIANDO O PLUGIN PARA O
REPOSITÓRIO OFICIAL
O acesso será algo como este exemplo:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
GERENCIANDO OS ARQUIVOS
ATRAVÉS DO SVN
Existem algumas formas de gerenciar os arquivos, porém
irei abordar apenas uma.
Se estiver utilizando Windows, podemos utilizar uma
ferramenta chamada Tortoise SVN:
https://tortoisesvn.net/downloads.html
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
GERENCIANDO OS ARQUIVOS
ATRAVÉS DO SVN
Basta fazer o download, instalar, acessar a pasta do plugin no seu computador, clicar
com o botão direito e escolher a opção “SVN Checkout”, inserir a URL do repositório
SVN, escolher uma pasta no seu computador onde os arquivos serão salvos, clicar em
Ok, inserir o nome de usuário e senha (o mesmo do WordPress.org):
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Na sequência, copie e cole os arquivos PHP e readme do
seu plugin para a pasta “trunk”:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Para inserir uma imagem para a capa do plugin, basta
criar uma imagem no tamanho 772x250, no formato JPG
ou PNG, com o nome:
banner-772x250.(jpg|png)
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Podemos melhorar ainda mais a exibição da capa, enviando um
arquivo com o dobro do tamanho, para exibição em telas com
alta DPI (retina). Ainda, como o plugin poderá ser acessado por
pessoas que utilizam idiomas com a leitura da direita para a
esquerda (RTL), é possível enviar a capa (tanto no tamanho
normal quanto para tela retina), com suporte à estes idiomas,
ficando da seguinte forma:
Banner normal: banner-772x250.(jpg|png)
Banner normal (RTL): banner-772x250-rtl.(jpg|png)
Alta DPI (Retina): banner-1544x500.(jpg|png)
Alta DPI (Retina RTL): banner-1544x500-rtl.(jpg|png)
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Seguindo o mesmo formato, para inserir um ícone para o
plugin, basta criar uma imagem no formato JPG ou PNG,
no tamanho 128x128, para telas normais, e 256x256 para
telas retina. Ainda é possível enviar um ícone SVG:
Normal: icon-128x128.(png|jpg)
Alta DPI (Retina): icon-256x256.(png|jpg)
SVG: icon.svg
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Depois de criadas as imagens, basta copiá-las para a
pasta “assets”, que vai estar dentro da pasta do seu
plugin:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
INSERINDO ÍCONE E CAPA NO
PLUGIN
Após inserir as imagens na pasta “assets”, clique novamente com o
botão direito na pasta raiz do seu plugin e selecione a opção “SVN
Commit”. Insira uma mensagem descrevendo a alteração e clique
em OK:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
SEU PLUGIN ESTÁ PRONTO E
PUBLICADO
Feito isso, seu plugin já estará publicado e com as imagens na
página oficial:
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
LINKS
Introdução sobre como criar plugin para WooCommerce:
https://docs.woocommerce.com/document/create-a-plugin/
Introdução sobre Markdown
https://blog.da2k.com.br/2015/02/08/aprenda-markdown/
Introdução sobre como enviar seu plugin:
https://wordpress.org/plugins/developers/
Planejar, enviar e manter o plugin:
https://developer.wordpress.org/plugins/wordpress-org/planning-your-plugin/
Validar Readme.txt
https://wordpress.org/plugins/developers/readme-validator/
Enviar plugin:
https://wordpress.org/plugins/developers/add/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
LINKS
Como usar o Subversion:
https://developer.wordpress.org/plugins/wordpress-org/how-to-use-subversion/
Como funciona o Readme.txt
https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
Gerador de readme:
https://generatewp.com/plugin-readme/
Como enviar ícones e capas para o plugin:
https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/
Vídeos YouTube sobre criação de plugin e utilização do Tortoise:
https://www.youtube.com/playlist?list=PLtaXuX0nEZk_MdFQAlp7v6N3TwEJUeuHq
https://www.youtube.com/watch?v=5WDTz6pPh4Y
https://www.youtube.com/watch?v=IP-Ejh11RXw
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
LINKS
Repositório de Snippets :
https://github.com/taniarascia/wp-functions
Snippets WordPress:
https://wp-snippet.com/snippets/
Snippets WooCommerce:
https://docs.woocommerce.com/documentation/plugins/woocom
merce/woocommerce-codex/snippets/
Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
Formado em Web Design pela Faculdade Opet e desenvolvedor
freelancer, trabalhando com WordPress desde 2012. É membro da
comunidade WordPress Brasil desde 2015, contribuindo com
traduções e com a organização dos eventos de WordPress em
Curitiba.
Marcos Alexandre
https://profiles.wordpress.org/marcosalexandre/
https://twitter.com/marcos_alex82
https://www.facebook.com/marcos.alexandre.33821
https://www.instagram.com/marcos_alexandre82/

Mais conteúdo relacionado

PDF
Wordpress e suas funções
PDF
Top Plugins de Segurança para WordPress
PDF
Testes automatizados end-to-end com WordPress por Fabio Nas
PDF
Estudo Esquematizado Extensão Google Chrome EstudoEsquematizado.com.br
PPT
WordPress, muito além de um software para blogs
PPTX
Usando PushWoosh com Ionic Framework
PDF
Construindo sites e sistemas com WordPress
PDF
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Wordpress e suas funções
Top Plugins de Segurança para WordPress
Testes automatizados end-to-end com WordPress por Fabio Nas
Estudo Esquematizado Extensão Google Chrome EstudoEsquematizado.com.br
WordPress, muito além de um software para blogs
Usando PushWoosh com Ionic Framework
Construindo sites e sistemas com WordPress
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...

Mais procurados (20)

PDF
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
PPTX
Wordpress Introdução a Plugins
PDF
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
DOC
PDF
Criarblognowordpress
PDF
Trevisan - Educação Executiva em Redes Sociais - Aulas 28 e 29
PDF
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
PDF
Web Offline
PPTX
Literacia da informacao
PPTX
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
PPT
Minicurso Play Framework - Tão fácil que nem parece Java
PPT
10 coisas para fazer logo após instalar o Wordpress
PDF
Startups com WordPress - Tirando a sua ideia do papel
PDF
Curso de Wordpress - Do Zero ao Site no Ar
PPT
Como Criar Um Blog
PPS
SEO para WordPress
PDF
Mini curso: Ionic Framework
PPTX
Progressive Web Apps
PPTX
ASP.NET MVC 5.x
PDF
Dando vida ao sketch com Firebase
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
Wordpress Introdução a Plugins
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Criarblognowordpress
Trevisan - Educação Executiva em Redes Sociais - Aulas 28 e 29
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
Web Offline
Literacia da informacao
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Minicurso Play Framework - Tão fácil que nem parece Java
10 coisas para fazer logo após instalar o Wordpress
Startups com WordPress - Tirando a sua ideia do papel
Curso de Wordpress - Do Zero ao Site no Ar
Como Criar Um Blog
SEO para WordPress
Mini curso: Ionic Framework
Progressive Web Apps
ASP.NET MVC 5.x
Dando vida ao sketch com Firebase
Anúncio

Semelhante a Como criar um plugin sem ser desenvolvedor (20)

PPS
WordPress SEO - SearchLabs 2010
PDF
Ebook - Processo de Otimização de Sites WordPress
PPT
Apresentação blogs
PDF
Parse Push Notification - O Lado negro da força
PDF
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
PPT
Aprendendo a criar plugins para o Wordpress - Richard Barros
PPT
Wordpress - Gerenciamento de Blogs e sites - Aula 1
PDF
Introdução e instalação de plug ins wp para melhorar o marketing político do ...
PDF
Quem tem medo do terminal?
PDF
Traduções no WordPress
PDF
Como desenvolver um tema wordpress de A a Z
PDF
Otimizacao Front-End para WordPress - OlhoSEO 2013
PDF
The Ultimate Guide to Development in WordPress
PDF
[E-book] Como criar e manter um site ou blog com o Wordpress
PDF
Segurança e automação na Amazon: Lições das trincheiras
PDF
Vale Security Conference - 2011 - 6 - Thiago Bordini
PDF
Aula maps 23_2
PDF
1503 - Revista - Angular.pdf
PDF
Desafio Rest API
PDF
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
WordPress SEO - SearchLabs 2010
Ebook - Processo de Otimização de Sites WordPress
Apresentação blogs
Parse Push Notification - O Lado negro da força
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
Aprendendo a criar plugins para o Wordpress - Richard Barros
Wordpress - Gerenciamento de Blogs e sites - Aula 1
Introdução e instalação de plug ins wp para melhorar o marketing político do ...
Quem tem medo do terminal?
Traduções no WordPress
Como desenvolver um tema wordpress de A a Z
Otimizacao Front-End para WordPress - OlhoSEO 2013
The Ultimate Guide to Development in WordPress
[E-book] Como criar e manter um site ou blog com o Wordpress
Segurança e automação na Amazon: Lições das trincheiras
Vale Security Conference - 2011 - 6 - Thiago Bordini
Aula maps 23_2
1503 - Revista - Angular.pdf
Desafio Rest API
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Anúncio

Último (20)

PDF
wp-sn-advanced-high-availability-architecture (pt-br).pdf
PPTX
Introdução a Computação em Nuvem-parte2-T2
PDF
POO - Aula 05 - Herança - Generalização e Especialização.pdf
PDF
POO - Aula 05 - Herança - Generalização e Especialização.pdf
PDF
Gestão contínua de exposição a ameaças petrobras
PPTX
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
PPTX
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
PDF
POO - Aula 03 - Membros Estáticos e Construtores.pdf
PPTX
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
PDF
pdfcoffee.com_metalografia-25-pdf-free.pdf
PPTX
Google saiba mais sobre o google e suas funcionalidades
PPTX
Panorama da aviação civil brasileira ANAC
PPTX
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
DOCX
Laboratório de cyber security, apresentação simples.
DOCX
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
PPTX
Modelo para Qualificação de Mestrado - Tecnologia da Informação
PDF
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
PDF
Arquitetura de Software slides sommerville
PPT
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
PPTX
Legislação aeronautica na aviação civil Brasileira
wp-sn-advanced-high-availability-architecture (pt-br).pdf
Introdução a Computação em Nuvem-parte2-T2
POO - Aula 05 - Herança - Generalização e Especialização.pdf
POO - Aula 05 - Herança - Generalização e Especialização.pdf
Gestão contínua de exposição a ameaças petrobras
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
POO - Aula 03 - Membros Estáticos e Construtores.pdf
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
pdfcoffee.com_metalografia-25-pdf-free.pdf
Google saiba mais sobre o google e suas funcionalidades
Panorama da aviação civil brasileira ANAC
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
Laboratório de cyber security, apresentação simples.
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
Modelo para Qualificação de Mestrado - Tecnologia da Informação
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
Arquitetura de Software slides sommerville
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
Legislação aeronautica na aviação civil Brasileira

Como criar um plugin sem ser desenvolvedor

  • 1. COMO CRIAR UM PLUGIN SEM SER DESENVOLVEDOR É possível utilizar códigos simples, que muitas vezes existem prontos na internet, para resolver algumas necessidades de alterações em um site WordPress. Para facilitar a manutenção, o correto é transformar essas personalizações em um plugin. Nesta palestra veremos como isso é mais simples do que parece. Marcos Alexandre
  • 2. Formado em Web Design pela Faculdade Opet e desenvolvedor freelancer, trabalhando com WordPress desde 2012. É membro da comunidade WordPress Brasil desde 2015, contribuindo com traduções e com a organização dos eventos de WordPress em Curitiba. Marcos Alexandre https://profiles.wordpress.org/marcosalexandre/ https://twitter.com/marcos_alex82 https://www.facebook.com/marcos.alexandre.33821 https://www.instagram.com/marcos_alexandre82/
  • 3. INSERINDO OU REMOVENDO UMA FUNCIONALIDADE Em nossos projetos, muitas vezes precisamos de um comportamento específico. Esse comportamento muitas vezes pode ser obtidos através de um filtro no PHP, o qual retira ou acrescenta uma funcionalidade ao nosso tema WordPress. Ao buscarmos uma solução na web, geralmente nos deparamos com algumas soluções prontas. Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 4. QUAIS CÓDIGOS PODEM SE TORNAR UM PLUGIN Basicamente, quase todos o códigos que encontramos na internet e que utilizamos no arquivo functions.php do tema podem se tornar um plugin. Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 5. VANTAGENS EM SE UTILIZAR ESTE CÓDIGO COMO PLUGIN O tema deve ser responsável pela parte visual do projeto. Funcionalidades devem ser mantidas em plugins, pois dessa forma, a manutenção futura fica muito mais fácil. Além disso, se o tema for um tema comprado e não estiver utilizando um tema descendente, qualquer edição no código dele será sobrescrita em uma atualização. Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 6. EXEMPLO DE UM CÓDIGO QUE PODE SER UM PLUGIN Recentemente precisei remover os produtos relacionados em um projeto que utilizava WooCommerce. Pesquisando sobre os filtros que poderiam me ajudar, me deparei com o seguinte código: add_filter('woocommerce_product_related_posts_query', '__return_empty_array', 100); O código acima verifica quando o filtro responsável pela exibição dos produtos relacionados é chamado e retorna um array vazio. Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 7. UM PLUGIN PRECISA TER SEGURANÇA O código anterior sozinho já funcionaria, mas para melhorá-lo, quando transformamos em um plugin, podemos fazer algumas verificações. A primeira delas é garantir que o arquivos não possa ser acessado diretamente, inserindo logo no começo do arquivo, o seguinte código: if ( ! defined( 'ABSPATH' ) ) { exit; // Interrompe a chamada se acessado diretamente } Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 8. UM PLUGIN NÃO PRECISA SER COMPLEXO Além disso, como o filtro era para uma funcionalidade específica do WooCommerce, ele deve funcionar apenas se o WooCommerce estiver ativado. Para isso, inseri o código do filtro dentro de uma verificação da utilização ou não do WooCommerce: /** Verificando se o WooCommerce está ativado **/ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { /** Aqui vai o código do filtro **/ } Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 9. UM PLUGIN NÃO PRECISA SER COMPLEXO O código PHP completo do plugin ficou assim: if ( ! defined( 'ABSPATH' ) ) { exit; // Interrompe a chamada se acessado diretamente } /** Verificando se o WooCommerce está ativado **/ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { add_filter('woocommerce_product_related_posts_query', '__return_empty_array', 100); } Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 10. UM PLUGIN NÃO PRECISA SER COMPLEXO Agora o plugin está praticamente pronto, mas ainda é necessário inserir os requisitos de cabeçalho (no topo do arquivo), que são responsáveis pela exibição do nome, url do site do plugin, descrição, autor, url do site do autor do plugin, versão do plugin, tipo de licença, url da licença, domínio do texto, etc. Temos mais detalhes em: https://developer.wordpress.org/plugins/plugin- basics/header-requirements/ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 11. UM PLUGIN NÃO PRECISA SER COMPLEXO O requisito mínimo é o nome do plugin, mas é interessante incluir o maior número de dados possíveis, como no exemplo a seguir, que utilizei na criação do meu plugin: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 12. UM PLUGIN NÃO PRECISA SER COMPLEXO <?php /** * Plugin Name: Remove WooCommerce Product Related * Plugin URI: https://github.com/marcos-alexandre82/remove-woocommerce-product-related * Description: Removes, globally, related products in WooCommerce. * Author: Marcos Alexandre * Author URI: https://marcosalexandre.dev/ * Version: 1.0.0 * License: GNU General Public License v3.0 * License URI: http://www.gnu.org/licenses/gpl-3.0.html * Text Domain: remove-woocommerce-product-related * Domain Path: /languages * WC tested up to: 5.2.2 */ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 13. UM PLUGIN NÃO PRECISA SER COMPLEXO A seguir temos o código PHP completo do plugin. Como a intenção é enviá-lo para o repositório oficial de plugin do WordPress, utilizar termos em inglês é a melhor prática, pois assim ele fica acessível à mais usuários: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 14. UM PLUGIN NÃO PRECISA SER COMPLEXO Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 15. UM PLUGIN NÃO PRECISA SER COMPLEXO Agora precisamos salvar o arquivo PHP em uma pasta. Ambos precisam ter o mesmo nome que utilizamos em domínio de texto (Text Domain), no nosso caso: remove-woocommerce-product-related Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 16. CRIANDO UM ARQUIVO README PARA SEU PLUGIN Por último, precisamos criar um arquivo readme.txt. Este arquivo é o responsável por exibir informações como descrição, dúvidas frequentes, etc. na página do plugin no repositório. Para isso exitem duas ferramentas que auxiliam: https://generatewp.com/plugin-readme/ https://wordpress.org/plugins/developers/readme- validator/ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 17. ENVIANDO O PLUGIN PARA O REPOSITÓRIO OFICIAL Para enviar o plugin para o repositório oficial do WordPress é necessário ter uma conta no wordpress.org: https://br.wordpress.org/ Ao fazer o login, basta acessar o link abaixo e utilizar o campo de envio no final da página, enviando um arquivo .zip da pasta contendo os arquivos do plugin: https://br.wordpress.org/plugins/developers/add/ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 18. ENVIANDO O PLUGIN PARA O REPOSITÓRIO OFICIAL Após o envio, será exibida uma mensagem contendo informações quanto ao prazo de análise do código pela equipe de plugins e a quantidade de plugins que estão na fila. Depois desta análise, se ele for aceito, você receberá um e-mail com o link do repositório SVN do plugin. É através deste repositório que você irá enviar o código do seu plugin, o ícone e o banner que vão ser exibidos na página do repositório, além de fazer edições no código, para futuras atualizações, se necessário. Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 19. ENVIANDO O PLUGIN PARA O REPOSITÓRIO OFICIAL O acesso será algo como este exemplo: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 20. GERENCIANDO OS ARQUIVOS ATRAVÉS DO SVN Existem algumas formas de gerenciar os arquivos, porém irei abordar apenas uma. Se estiver utilizando Windows, podemos utilizar uma ferramenta chamada Tortoise SVN: https://tortoisesvn.net/downloads.html Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 21. GERENCIANDO OS ARQUIVOS ATRAVÉS DO SVN Basta fazer o download, instalar, acessar a pasta do plugin no seu computador, clicar com o botão direito e escolher a opção “SVN Checkout”, inserir a URL do repositório SVN, escolher uma pasta no seu computador onde os arquivos serão salvos, clicar em Ok, inserir o nome de usuário e senha (o mesmo do WordPress.org): Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 22. INSERINDO ÍCONE E CAPA NO PLUGIN Na sequência, copie e cole os arquivos PHP e readme do seu plugin para a pasta “trunk”: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 23. INSERINDO ÍCONE E CAPA NO PLUGIN Para inserir uma imagem para a capa do plugin, basta criar uma imagem no tamanho 772x250, no formato JPG ou PNG, com o nome: banner-772x250.(jpg|png) Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 24. INSERINDO ÍCONE E CAPA NO PLUGIN Podemos melhorar ainda mais a exibição da capa, enviando um arquivo com o dobro do tamanho, para exibição em telas com alta DPI (retina). Ainda, como o plugin poderá ser acessado por pessoas que utilizam idiomas com a leitura da direita para a esquerda (RTL), é possível enviar a capa (tanto no tamanho normal quanto para tela retina), com suporte à estes idiomas, ficando da seguinte forma: Banner normal: banner-772x250.(jpg|png) Banner normal (RTL): banner-772x250-rtl.(jpg|png) Alta DPI (Retina): banner-1544x500.(jpg|png) Alta DPI (Retina RTL): banner-1544x500-rtl.(jpg|png) Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 25. INSERINDO ÍCONE E CAPA NO PLUGIN Seguindo o mesmo formato, para inserir um ícone para o plugin, basta criar uma imagem no formato JPG ou PNG, no tamanho 128x128, para telas normais, e 256x256 para telas retina. Ainda é possível enviar um ícone SVG: Normal: icon-128x128.(png|jpg) Alta DPI (Retina): icon-256x256.(png|jpg) SVG: icon.svg Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 26. INSERINDO ÍCONE E CAPA NO PLUGIN Depois de criadas as imagens, basta copiá-las para a pasta “assets”, que vai estar dentro da pasta do seu plugin: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 27. INSERINDO ÍCONE E CAPA NO PLUGIN Após inserir as imagens na pasta “assets”, clique novamente com o botão direito na pasta raiz do seu plugin e selecione a opção “SVN Commit”. Insira uma mensagem descrevendo a alteração e clique em OK: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 28. SEU PLUGIN ESTÁ PRONTO E PUBLICADO Feito isso, seu plugin já estará publicado e com as imagens na página oficial: Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 29. LINKS Introdução sobre como criar plugin para WooCommerce: https://docs.woocommerce.com/document/create-a-plugin/ Introdução sobre Markdown https://blog.da2k.com.br/2015/02/08/aprenda-markdown/ Introdução sobre como enviar seu plugin: https://wordpress.org/plugins/developers/ Planejar, enviar e manter o plugin: https://developer.wordpress.org/plugins/wordpress-org/planning-your-plugin/ Validar Readme.txt https://wordpress.org/plugins/developers/readme-validator/ Enviar plugin: https://wordpress.org/plugins/developers/add/ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 30. LINKS Como usar o Subversion: https://developer.wordpress.org/plugins/wordpress-org/how-to-use-subversion/ Como funciona o Readme.txt https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/ Gerador de readme: https://generatewp.com/plugin-readme/ Como enviar ícones e capas para o plugin: https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/ Vídeos YouTube sobre criação de plugin e utilização do Tortoise: https://www.youtube.com/playlist?list=PLtaXuX0nEZk_MdFQAlp7v6N3TwEJUeuHq https://www.youtube.com/watch?v=5WDTz6pPh4Y https://www.youtube.com/watch?v=IP-Ejh11RXw Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 31. LINKS Repositório de Snippets : https://github.com/taniarascia/wp-functions Snippets WordPress: https://wp-snippet.com/snippets/ Snippets WooCommerce: https://docs.woocommerce.com/documentation/plugins/woocom merce/woocommerce-codex/snippets/ Como criar um plugin sem ser desenvolvedor - Marcos Alexandre
  • 32. Formado em Web Design pela Faculdade Opet e desenvolvedor freelancer, trabalhando com WordPress desde 2012. É membro da comunidade WordPress Brasil desde 2015, contribuindo com traduções e com a organização dos eventos de WordPress em Curitiba. Marcos Alexandre https://profiles.wordpress.org/marcosalexandre/ https://twitter.com/marcos_alex82 https://www.facebook.com/marcos.alexandre.33821 https://www.instagram.com/marcos_alexandre82/