widget

Criando área de widget

O que seria a área de widget? Bom, ela pode ser seu sidebar ou um menu no rodapé da página por exemplo, você decide. Eu usei como sidebar no site em que estava desenvolvendo.
Para adicionar a área de widget usamos a função abaixo:

function widgets_novos_widgets_init() {
                 register_sidebar( array(
                                'name' => 'Sidebar',
                                'id' => 'sidebar_widgets',
                                'before_widget' => '<div class="sidebar">',
                                'after_widget' => '</div>',
                                'before_title' => '<h2>',
                                'after_title' => '</h2>',
                 ) );
 }
 add_action( 'widgets_init', 'widgets_novos_widgets_init' );

Ela vai aparecer no painel do wordpress em Aparência > Widgets, assim:
result
Para mostrar o widget na página desejada usamos a seguinte função:

dynamic_sidebar('sidebar_widgets');

Em ‘sidebar_widgets’ vai o id que você deu ao seu widget.
Espero ter ajudado, e até a próxima.

READ MORE
wordpress

Como adicionar campo para classe no widget do WordPress

Pra que você otimize seu tempo e seu projeto, segue uma dica super importante sobre o wordpress.
Estava desenvolvendo um projeto e precisava de um campo para colocar uma classe personalizada que pudesse diferenciar um widget do outro. Então achei essa função:

function field_in_widget_form($t,$return,$instance){
 $instance = wp_parse_args( (array) $instance, array( 'widget_class' => '') );
 if($instance['widget_class'] != ''){
 $value = $instance['widget_class'];
 }else{
 $value = '';
 }
 ?>

(Essa parte você pode personalizar o campo, usando outas tags, tipo de input etc…)

 <p> <input id="<?php echo $t->get_field_id('widget_class'); ?>" name="<?php echo $t->get_field_name('widget_class'); ?>" type="text" value="<?php echo $value; ?>" />
 <label for="<?php echo $t->get_field_id('widget_class'); ?>"><?php _e('Adicionar Classe'); ?></label>   </p>
 <?php
 $return = null;
 return array($t,$return,$instance);
 }
 add_action('in_widget_form', ' field _in_widget_form',5,3);

Onde está ‘widget_class’ vai o nome  que você quiser colocar para seu campo.
E para salvar o valor no seu novo campo usamos essa outra função:

function field_in_widget_form_update($instance, $new_instance, $old_instance){        $instance['widget_class'] = $new_instance['widget_class'];
 return $instance;
 }
 add_filter('widget_update_callback', ' field _in_widget_form_update',5,3);

E prontinho, agora você tem um campo para pôr classes no seu widget.
exemplo

READ MORE
woo

Saiba como adicionar Custom Fields nos dados gerais do produto (woocommerce)

No cadastro de produtos do woocommerce tem uma tabela com vários dados sobre o produto, nesse artigo vou ensinar como colocar campos novos na aba “Geral”, que é a primeira aba que aparece aberta.
sem-campo
Eu precisava de campos para colocar preço de atacado nos produtos, então adicionei a seguinte função no meu arquivo functions.php:
add_action(‘woocommerce_product_options_general_product_data’,’woo_add_custom_general_fields’ );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
echo ‘<div class=”options_group”>’;
echo ‘<h2>Atacado</h2>’;
woocommerce_wp_text_input(array(
‘id’                => ‘_regular_price_wholesale’,
‘class’             => ‘short wc_input_price’,
‘label’             => __( ‘Preço (R$)’, ‘woocommerce’ ),
‘placeholder’       => ”,
‘type’              => ‘text’,
)
);
woocommerce_wp_text_input(array(
‘id’                => ‘_sale_price_wholesale’,
‘class’             => ‘short wc_input_price’,
‘label’             => __( ‘Preço promocional (R$)’, ‘woocommerce’ ),
‘placeholder’       => ”,
‘type’              => ‘text’,
)
);
echo ‘</div>’;
}
Você pode personalizar os nomes dos campos , classes, placeholder, tipo de input e etc…
Após adicionar os campos que você deseja precisará salvar eles também, e pra isso utilizamos essa outra função, também no arquivo funtions.php:
add_action( ‘woocommerce_process_product_meta’, ‘woo_add_custom_general_fields_save’ );
function woo_add_custom_general_fields_save( $post_id ){
$woocommerce_text_field = $_POST[‘_regular_price_wholesale’];
$_woocommerce_text_field = $_POST[‘_sale_price_wholesale’];
if( !empty( $woocommerce_text_field ) ){
update_post_meta( $post_id, ‘_regular_price_wholesale’, esc_attr( $woocommerce_text_field ) );
}
if( !empty( $_woocommerce_text_field ) ){
update_post_meta( $post_id, ‘_sale_price_wholesale’, esc_attr( $_woocommerce_text_field ) );
}
}
com-campo
E esse foi o resultado! Espero ter ajudado, e até a próxima.

READ MORE

Aprenda como reorganizar os campos de checkout do woocommerce

Quando o usuário vai finalizar uma compra o woocommerce mostra os campos do checkout organizados da forma padrão, só que o projeto que eu estava desenvolvendo pedia por uma disposição dos campos de forma diferente. Então pesquisando achei uma solução simples e que funciona muito bem.
Na pasta checkout do woocommerce tem um arquivo de nome form-billing.php, nele estão os campos que aparecem no checkout. Você vai copiar a pasta e o arquivo para o seu tema para pode editar.
Ao abrir o arquivo ele estará desta forma:
foreach
 
Ele distribui os campos através de um foreach, então para mudar os campos vamos mexer nessa função, e ela ficará desta forma:
second-foreach
Você vai colocar os nomes dos campos na ordem em que deseja dentro de um array(), e depois fazer um foreach para mostras os campos utilizando a própria função do woocommerce: woocommerce_form_field(), como no exemplo acima. Eu fiz dois foreach por que queria colocar em divs diferentes, mas você poderá personalizar como quiser.

READ MORE
abri-um-negocio-de-assinaturas-e-agora

Thumbnail não aparece quando vou cadastrar um post – e agora?

A resposta é bem simples e prática, está faltando o suporte ao tema para ativar o recurso das thumbnails.
Vá no arquivo functions.php do seu tema, e adicione a seguinte função:
add_action( ‘after_setup_theme’, ‘my_theme_setup’ );
function my_theme_setup(){
add_theme_support( ‘post-thumbnails’ );
}
Prontinho, agora você já pode cadastrar as thumbnails no seu post.

READ MORE

Saiba como preencher e limitar a quantidade mínima dos produtos no WooCommerce

Depois de muito quebrar a cabeça, a solução apareceu e era mais fácil do que o esperado.
No arquivo functions.php do seu tema adicione as funções:
Produto comum:
Add_filter(‘woocommerce_quantity_input_args’,’ex_woocommerce_quantity_input_args’,10,2);
function ex_woocommerce_quantity_input_args($args,$product){
if(is_singular(‘product’)){
$args[‘input_value’] = 25; (value do input)
}
$args[‘min_value’]=25; (valor mínimo)
return $args;
}
Produto Variável:
Add_filter(‘woocommerce_available_variation’,’ex_woocommerce_available_variation’);
function ex_woocommerce_available_variation($args){
$args[‘min_qty’]=25;
return $args;
}
Você pode pegar a quantidade mínima definida no cadastro do produto e por no lugar do número 25 da seguinte forma:
global $product;
$id = $product->get_id();
$min = get_post_meta($id,’min_qty’,true);
$args[‘min_qty’]= $min;

READ MORE

Operador condicional (ternário): Como exatamente funciona?

O que significa isso: “isset($_POST[‘name’]) ? $_POST[‘name’] : ‘Convidado’;” ?
Muito conhecido por ser utilizado por programadores ‘preguiçosos’, que evitam criar um código monótono e redundante. O operador ternário é uma versão do “IF…ELSE”, que consiste em agrupar, na mesma linha, os comandos da condição.
Mas qual a diferença dele para o nosso  “IF…ELSE”?
Vamos comparar, primeiro a condição tradicional:

$sexo = 'M';
if($sexo == 'M'){
    $mensagem = 'Olá senhor';
}else{
    $mensagem = 'Olá senhora';
}

E agora como seria a nossa condição com operador ternário:

$sexo = 'M';
$mensagem = $sexo == 'M' ? 'Olá senhor' : 'Olá senhora' ;

Notamos que nosso código foi resumido de 6 linhas para apenas 2, a vantagem é bem clara, não é preciso repetir o nome da variável, pois o valor já é atribuído a ela.
OK, já vimos a comparação das condições, mas agora vamos entender como trabalhar com a estrutura do operador ternário.

$nota = 8;
$resultado = $nota > 7 ? 'Você Passou' : 'Você Reprovou' ;

Na condição o primeiro parâmetro recebe uma expressão booleana, o segundo é o retorno caso essa expressão seja verdadeira, e o último retorna o valor caso a expressão esteja errada. Assim a variável ‘resultado’ fica com o valor ‘Você Passou’.
O operador ternário vai facilitar muito sua vida, mas no caso de condições mais complexas, é aconselhado utilizar o tradicional IF…ELSE.

$cargo = $salario <= 1000 ? 'junior' : $salario <= 5000 ? 'senior' : 'diretor';

Ficou um pouco confuso, né? Então em casos complexos, ou de controle de fluxo, continue utilizando o IF…ELSE, mas quando for pra atribuir um valor a variável, use e abuse da condição ternánia.
Lembre-se, os exemplos dados acima foram feitos em PHP, condições ternárias, podem ser utilizados em outras linguagens, como Javascript.

validaEmail(email) ? enviaEmail(email) : mostraErro();
READ MORE
  • 1
  • 2