WooCommerce Domination – Deixe o WooCommerce dominar o seu WordPress!

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:

[button_download href=”wordpress.org/plugins/woocommerce-domination/”]Wordpress[/button_download] [button_download href=”http://github.com/claudiosmweb/woocommerce-domination”%5DGitHub%5B/button_download%5D

WooCommerce – Campos personalizados no formulário de cadastro

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.

<?php
/**
* Add new register fields for WooCommerce registration.
*
* @return string Register fields HTML.
*/
function cs_wc_extra_register_fields() {
?>
<p class="form-row form-row-first">
<label for="reg_billing_first_name"><?php _e( 'Nome', 'textdomain' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>" />
</p>
<p class="form-row form-row-last">
<label for="reg_billing_last_name"><?php _e( 'Sobrenome', 'textdomain' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>" />
</p>
<?php
}
add_action( 'woocommerce_register_form_start', 'cs_wc_extra_register_fields' );
/**
* Validate the extra register fields.
*
* @param string $username Current username.
* @param string $email Current email.
* @param object $validation_errors WP_Error object.
*
* @return void
*/
function cs_wc_validate_extra_register_fields( $username, $email, $validation_errors ) {
if ( isset( $_POST['billing_first_name'] ) && empty( $_POST['billing_first_name'] ) ) {
$validation_errors->add( 'billing_first_name_error', __( '<strong>Erro</strong>: Digite o seu nome.', 'textdomain' ) );
}
if ( isset( $_POST['billing_last_name'] ) && empty( $_POST['billing_last_name'] ) ) {
$validation_errors->add( 'billing_last_name_error', __( '<strong>Erro</strong>: Digite o seu sobrenome.', 'textdomain' ) );
}
}
add_action( 'woocommerce_register_post', 'cs_wc_validate_extra_register_fields', 10, 3 );
/**
* Save the extra register fields.
*
* @param int $customer_id Current customer ID.
*
* @return void
*/
function cs_wc_save_extra_register_fields( $customer_id ) {
if ( isset( $_POST['billing_first_name'] ) ) {
// WordPress default first name field.
update_user_meta( $customer_id, 'first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
// WooCommerce billing first name.
update_user_meta( $customer_id, 'billing_first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
}
if ( isset( $_POST['billing_last_name'] ) ) {
// WordPress default last name field.
update_user_meta( $customer_id, 'last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
// WooCommerce billing last name.
update_user_meta( $customer_id, 'billing_last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
}
}
add_action( 'woocommerce_created_customer', 'cs_wc_save_extra_register_fields' );

view raw
functions.php
hosted with ❤ by GitHub

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.

WooCommerce – Criar novas abas para os produtos.

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:

Plugins atualizados para o WooCommerce 2.1

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?

[button_class class=”icon-gift” href=”https://claudiosmweb.com/doacoes/”%5DMe pague uma cerveja então![/button_class]

WooCommerce – Remover método de pagamento do WooCommerce

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:

WooCommerce – Adicionar intervalo entre números de CEPs para “Retirar no Local” e “Entrega Local”

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.

WooCommerce – Exibir parcelas ao lado do valor

Alguns visitantes me perguntaram como exibir um valor de parcelas ao lado do valor no loop de produtos e dentro das páginas, desta forma resolvi desenvolver um projeto de plugin (vai virar oficial assim que eu tiver tempo) para fazer isso.

Aqui um exemplo de como deverá ficar no seu WooCommerce:

woocommerce-loop-com-parcelas

woocommerce-produto-com-parcelas

O que você precisa para exibir as parcelas é isso daqui:

Basta criar um arquivo .php e colar o código dentro, depois zipar e instalar como um plugin.

[box type=”alert”]Observe que isto é um tutorial de como fazer e não que você vai instalar e funcionar em 100% dos casos e nem atender todas as demandas! Eu estou aqui dando a parte principal de como fazer, o resto é por sua conta, se não apareceu correto no seu tema, você tem a opção de corrigir ou de não usar isso![/box]