Limite de Variações woocommerce

Você pode não estar sabendo, como eu não sabia, mas quando você cria as variações de forma automática e tem mais de 50 possibilidades, os vínculos acabam não acontecendo. 

Então, quando você vai na página do produto e seleciona um atributo, ele não filtra os outros que deveriam estar vinculados mesmo estando cadastrados no produto. O QUE EU FIZ DE ERRADO?  Calma, você não fez nada. O que acontece é que o woocommerce, para evitar derrubar o seu servidor por passar do limite de tempo, atualiza apenas 50 variações por “rodada”. Então, se você tem mais de 50 variações no produto, os vínculos não vão acontecer.

Mas, como o woocommerce é camarada, ele tem um filtro maroto para aumentar esse limite de updates: 

function custom_wc_ajax_variation_threshold( $qty, $product ) {
    return 200; (você pode colocar a quantidade máxima desejada aqui)
}
add_filter( 'woocommerce_ajax_variation_threshold', 'custom_wc_ajax_variation_threshold', 100, 2 );

Coloque esse código no arquivo functions.php do seu site e seja feliz.

Deixa um comentário para o adm se consegui te ajudar, e até a próxima.

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

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

Problemas com Produto Variável com preços iguais – WooCommerce

Recentemente em um projeto de loja virtual enfrentamos um problema que em um primeiro momento parecia incoerente. Ao criar um Produto Variável, onde as variações tinham o mesmo preço, sua página deixava de mostrar o preço do produto.
Depois de alguns teste e buscas no nosso amigo Google, encontramos uma solução e uma explicação:
“Na realidade, este se destina a ser uma função de melhoria da performance / memória para evitar a renderização e processamento de dados duplicados variação no atributo de dados HTML. Mas ele acaba causando problemas, pois resulta na saída HTML de variações não sendo consistente de produto para produto. Realmente toda esta questão é devido a más práticas sendo usado por WooCommerce para tornar o conteúdo dinâmico para as variações, mas o que você pode fazer.”
Para resolver, basta incluir o código abaixo no arquivo functions.php do seu tema.
add_filter('woocommerce_available_variation', function($available_variations, WC_Product_Variable $variable, WC_Product_Variation $variation) {
if (empty($available_variations['price_html'])) {
$available_variations['price_html'] = '<span>' . $variation->get_price_html() . '</span>';
}return $available_variations;
}, 10, 3);

Espero ter ajudado mais colegas!
Fonte: http://stackoverflow.com/

READ MORE