Dependendo do projeto que você vai desenvolver não existe logica deixar destacado as opções de blog do WordPress e deixar escondido as da loja do WooCommerce.

Isso sempre foi algo que me incomodou usando WooCommerce e desta forma desenvolvi um plugin para fazer o WooCommerce dominar o WordPress.

O plugin destaca os menus de pedidos, relatórios, clientes, produtos e cupons, além de adicionar botões na barra superior (admin bar), sendo possível ver a quantidade de produtos processando ou acessar diretamente o menu de relatórios. Com isso deixamos a parte de posts, mídia, paginas e comentários em segundo plano.

Aqui uma imagem de como vai ficar o menu lateral e a barra superior:

woocommerce-domination

Atenção: Para utilizar este plugin você deve usar o WooCommerce 2.1.0 ou superior, não funciona com versões anteriores e eu não vou fazer funcionar simplesmente porque eu quero que todos atualizem para os últimos releases, se não gostou pega eu!

Instalação:

Para mais detalhes sobre a instalação visite o nosso tutorial de instalação no WordPress.

Dúvidas sobre o plugin?

Visite a nossa FAQ no WordPress, entre em contato ou deixe um comentário a baixo.

Links para Download:

Wordpress GitHub

Agora com o WooCommerce 2.1.0 ficou bem mais simples adicionar campos customizados no formulário de cadastro.

No caso é o cadastro que pode ser feito na página “Minha conta”, que pode ser ativado em WooCommerce > Configurações > Conta com a opção Habilitar registro na página “Minha Conta”.

Aqui um exemplo de como adicionar os campos para Nome e Sobrenome.

Utilizei o gancho woocommerce_register_form_start para adicionar os campos antes do e-mail e da senha, mas é possível usar também woocommerce_register_form para adicionar no final.
Observe que estes ganchos estão disponíveis apenas nos modelos de templates do WooCommerce 2.1.0 ou superior, caso não funcione com o seu tema pronto, você vai precisar atualizar o seu template (myaccount/form-login.php).

É possível determinar o alinhamento dos novos campos com as classes form-row-first (alinha para esquerda), form-row-last (alinha para direita) e form-row-wide (centraliza com apenas um campo por linha).

No exemplo validei os novos campos com o gancho woocommerce_register_post e finalmente salvei no banco de dados com woocommerce_created_customer.
Nota: foi atualizado o campo first_name e last_name que são nativos do WordPress, junto com billing_first_name e billing_last_name que são os campos de nome e sobrenome para pagamento do WooCommerce.

Veja como ficou o exemplo:

woocommerce-minha-conta-campos-personalizados

Da para fazer isso também com versões antigas do WooCommerce, mas exige um pouco mais de trabalho e usar ganchos do WordPress… Isso eu não vou ensinar (pode chorar o quanto quiser xD), caso você queria utilizar o que estou ensinando aqui atualize para a última versão do WooCommerce!

Pretendo em breve escrever mais coisas que é possível fazer agora com o WooCommerce 2.1.0.

Para quem não conhece, Gulp é um task runner (automatizador de tarefas) que funciona com NodeJS, tornando possível diversas taferas, como compilar arquivos SASS para CSS, comprimir arquivos JavaScript e imagens, fazer deploy e etc.

Ele é similar ao Grunt, entretanto o jeito que ele funciona o torna similar ao Fabric do Python e Rake do Ruby, ficando bem simples de entender as tasks que estão sendo criadas.

Você pode usar o Gulp com praticamente qualquer projeto, principalmente com o WordPress e aqui vou mostrar como é simples fazer isso usando SASS, validando e comprimindo arquivos JavaScript e ainda otimizando imagens.

Requirimentos:

É necessário instalar o NodeJS: http://nodejs.org/download/.
Depois já é possível instalar o Gulp com o comando:

Criando seu arquivo package.json:

Agora crie dentro do seu tema uma pasta chamada src que iremos usar para deixar o Gulp e separá-lo dos arquivos principais do seu tema e o arquivo package.json com o seguinte conteúdo:

O package.json possui todas as dependências de desenvolvimento do projeto.
Altere no seu tema os campos name, description, version e title.

Instalando as dependências do projeto:

Dentro da pasta src rode o comando a seguinte para baixar as dependências do projeto:

gulpfile.js do projeto:

Agora para que seja possível criar suas tasks e executá-las você precisa de um arquivo gulpfile.js, para este exemplo usaremos o seguinte:

Neste arquivo descrevemos cada tasks criando uma função com gulp.task()

Tasks do projeto:

Então agora temos as seguintes tasks:

  • scripts – Valida e comprime todos os arquivos JavaScript.
  • sass – Compila todos os arquivos SCSS do projeto.
  • optimize – Otimiza todas as imagens.
  • watch – Assiste alterações nos arquivos de JavaScript e SCSS para processar as tasks scripts e sass.
  • default – Task padrão que compila todos os arquivos de JavaScript e SCSS.

Para mais detalhes sobre o funcionamento de cada task consulte as documentações:

Alterações no seu tema:

Como já pode ser possível observar no exemplo, utilizamos uma pasta src para os arquivos do Gulp e uma outra pasta assets na raiz do tema que irá conter todos os estáticos do projeto.

Ficando a seguinte estrutura de diretório:

Desta forma usaremos o style.css da raiz do tema apenas para registrar o tema no seu WordPress e para os estilos usaremos o assets/css/style.css.

Então podemos registrar todos os scripts e alterar o caminho do CSS do tema pelo functions.php:

E pronto, agora estamos carregando corretamente o arquivos de JavaScript e CSS do tema.

Exemplo:

Download Código no GitHub

Referências:

Criar novas abas para as páginas de produtos do WooCommerce é muito simples.

Basta utilizar o filtro woocommerce_product_tabs para isso, veja um exemplo:

Criamos uma funçao chamada cs_register_woocommerce_product_tab(), onde ela recebe o parametro $tabs, este parametro carrega as abas que já existe no WooCommerce e com um array adicionamos a nossa aba.

Os parametros para criar a nova aba são:

  • title – Título da aba
  • priority – Prioridade, ordem que a aba vai aparecer
  • callback – Função callback que será responsável por exibir o conteúdo da aba.

As abas nativas do WooCommerce tem os seguintes valores para priority:

  • Descrição/Description = 10
  • Informação adicional/Additional Information = 20
  • Avaliações/Reviews = 30

Desta forma configurando como 60 faz com que a nossa aba apareça por último, entretanto poderíamos ter usado 15 para aparecer entre “Descrição” e “Informação adicional” (ou “Avaliações” caso o produto não possua informações para ela).

A função callback deve ser usada para exibir o conteúdo da aba, sendo possível você pode chamar as variáveis globais $post ou $product para auxiliar na composição do conteúdo.

E ainda é possível remover as abas nativas da seguinte forma:

A versão final do WooCommerce 2.1 deve ser lançada em breve, hoje já é possível testar a versão beta 2  deste novo release.
Muita coisa mudou no código, entretanto apenas uma parcela bem pequena pode dar problema com algum tema ou plugin, desta forma recomendo fazer testes antes de atualizar.

Vai valer muito apena atualizar para a nova versão, pois ela tem integração total com o novo tema do admin do WordPress, relatórios melhorados, foram simplificadas as telas de configurações do plugin e como falei, o código foi reformulado e esta muito melhor e mais rápido.

Acompanhando a nova versão na semana passada atualizei os seguintes plugins:

Todos eles estão funcionando perfeitamente com a versão 2.0 ou superior do WooCommerce.

Com essas mudanças foi abandonado o suporte para as versões 1.6.6 e anterior, pois são versões muito antigas (de um ano atrás) e até mesmo extensões do site do WooThemes não estão mais dando suporte.

Também estou ajudando na tradução do WooCommerce pelo Transifex Oficial do WooThemes (faltam umas 80 palavras do admin, quem quiser ajudar basta entrar na equipe de tradução e traduzir).

Agradeceria muito quem poder testar os plugins com a nova versão do WooCommerce (seja o beta que temos agora ou as versões RCs que deve sair logo) e me dizer se encontrou algo errado.

Gosta do meu trabalho?

Me pague uma cerveja então!

A calculadora de frete padrão do carrinho no WooCommerce mostra os campos de País, Estado e CEP.

woocommerce-carrinho-calcular-frete

Entretanto, caso você venda apenas no Brasil este padrão não vai fazer sentido, além que o CEP já será o suficiente para cotar o frete.
Não podemos remover os campos de País e Estado, mas é possível ocultar eles.

Para ocultar crie o arquivo woocommerce/cart/shipping-calculator.php dentro do seu tema (é importante que seja dentro do seu tema e não dentro do plugin WooCommerce).

O arquivo deve ter o seguinte conteúdo:

A calculadora de frete agora ficará da seguinte forma:

woocommerce-nova-calculadora-de-frete

As vezes em certos projetos precisamos apenas usar um ou dois métodos de pagamento e deixar os outros indisponíveis.

Entretanto os métodos de pagamento padrões do WooCommerce continuam aparecendo no admin da loja e isso pode ser arriscado quando você tem um cliente que poderá editar a loja e adicionar métodos de pagamentos errados, sem saber o que fazendo.

Você pode remover estes métodos de vez de todo o WooCommerce utilizando o filtro woocommerce_payment_gateways, segue um exemplo retirando o método Mijireh Checkout:

As vezes é necessário limitar os números de CEPs para fornecer as opções “Retirar no Local” e “Entrega Local” como métodos de entrega.

Desta forma você pode criar um intervalo entre números e utilizar na opção CEP para isso como no exemplo:

local-pickup

No exemplo do CEP deve estar entre 1860*-*** e 1861*-***.
As opções “Retirar no Local” e “Entrega Local” ficarão disponíveis apenas se o CEP do cliente estiver neste intervalo de números.

Em 13 de Julho 2013 dei uma palestra sobre WooCommerce no WordCamp de Porto Alegre.

A ideia da palestra foi mostrar como é simples e viável fazer um e-commerce com WordPress.

Veja o vídeo da palestra:

Slides da palestra: https://speakerdeck.com/claudiosmweb/e-commerce-no-wordpress-com-woocommerce-wordcamp-poa-2013

Site Oficial do WooCommerce Porto Alegre 2013: http://2013.portoalegre.wordcamp.org/

Aproveitar e agradecer novamente o Rafael Ehlers pelo convite para dar a palestra.