WordPress WooCommerce Side Cart (Ajax) Pergunta: Ajax em arquivos

Um usuário perguntou ?

Olá. Eu estava pensando. Seria possível que seu plugin também funcionasse em páginas de arquivo de maneira fácil? Quero dizer, eu usaria seu script. Na forma que está agora, parece funcionar com o recurso de estoque do Woocommerce para transportar produtos com AJAX em páginas de arquivo. O problema é que esse recurso não funciona corretamente com plugins de cache. E quero, por exemplo, não ser redirecionado para uma única página de produto quando o produto estiver esgotado. O script Woocoomerce AJAX faz dessa maneira. Obrigado.

(@xootix)

Há 1 ano

Olá @fkoomek

Quando o produto está fora de estoque, a página de arquivo do woocommerce deve ocultar o botão adicionar ao carrinho e exibir “Esgotado”. É assim que o woocommerce funciona por padrão. “E eu quero, por exemplo, não ser redirecionado para uma única página de produto quando o produto não estiver em falta.” Você precisa entrar em contato com o woocommerce, esta função está relacionada ao woocommerce.

Desculpe, não entendo o problema dos “plugins de cache”. Adicione mais detalhes.

lançador de tópicos

(@fkoomek)

Há 1 ano

Desculpe, expliquei um pouco errado… Refiro-me ao caso em que um cliente tenta adicionar ao carrinho uma quantidade maior de produto do que tem em estoque. Se eu estiver na página de um produto e clicar no botão Adicionar ao carrinho (e não houver mais produtos em estoque), recebo uma mensagem: ‘Você não pode adicionar ao carrinho; temos X em estoque e você tem X.” no seu carrinho agora. Eu acho que isso foi tratado pelo seu plugin. Mas se eu tentar adicionar um produto a uma página de arquivo, funciona de uma maneira diferente: há um cliente na página de arquivo e ele clica no botão adicionar ao carrinho. O produto é adicionado ao Em seguida, clique em adicionar ao carrinho novamente para adicionar mais peças, mas não há mais peças do produto em estoque, então você é redirecionado para a página do produto com uma mensagem que diz: “Você não pode adicionar tanto . com o cesto: temos 1 em stock e já tens 1 no teu cesto «. Se a página do produto não tiver sido armazenada em cache antes, essa mensagem será armazenada em cache. Além disso, a mensagem às vezes aparece duas vezes. Então eu pensei que a solução seria colocar um produto na página de arquivo e não ter mais peças em estoque, apenas mostrar um pop-up (como o da página do produto) e isso lidaria com o Ajax para que não houvesse armazenamento em cache. veja a pergunta

(@xootix)

Há 1 ano

Olá @fkoomek

Como eu disse, o woocommerce lida totalmente com o comportamento acima. A funcionalidade do plug-in Ajax é apenas para a página do produto. Um carrinho lateral não pode receber um erro na página de arquivo. Tudo o que posso fazer é fornecer um snippet que impede a atualização da página e abre a barra lateral. Embora não haverá exibição de erro. Adicione isso ao seu functions.php

add_filter( 'woocommerce_cart_redirect_after_error', function( $link, $product_id ){
	wc_clear_notices();
	return '';
},10, 2);

lançador de tópicos

(@fkoomek)

Há 1 ano

Muito obrigado por sua ajuda. Agradeço ? Tentei seu botão, mas sem a mensagem, não é o melhor. Como posso desabilitar o Ajax em páginas de arquivo com seu plugin habilitado? Quando eu desabilito em sites Woocommerce, mesmo assim o Ajax permanece nas páginas de arquivo. Ele é ativado pelo seu plugin.

lançador de tópicos

(@fkoomek)

Há 1 ano

Olá. Então, com base no botão fornecido, usei assim:

add_filter( 'woocommerce_cart_redirect_after_error', function( $link, $product_id ){
$get_permalink = get_permalink( $product_id ) . '?error_notice';
return $get_permalink;
},10, 2);

Eu adicionei um fio de consulta a um URL quando há uma notificação de erro e impedi que esse fio de consulta seja hospedado. Portanto, agora um produto não é mais apresentado com uma notificação de erro. Parece estar funcionando bem. Será esta uma boa abordagem?

Esta resposta foi modificada há 1 ano por. Esta resposta foi modificada há 1 ano por. Esta resposta foi modificada há 1 ano por.

(@xootix)

Há 1 ano

Olá @fkoomek

Se você quiser desabilitar o ajax na página de arquivo, vá para as configurações do woocommerce e desmarque “Ajax add to cart”. Se você ainda vir a função ajax, algo mais está acontecendo, não nosso plugin. “Ajax adicionar ao carrinho” no site do carrinho lateral é apenas para uma página do produto. Não tenho certeza, como adicionar isso . '?error_notice' resolverá seu problema de cache. Bom para você, se funcionar. ?

lançador de tópicos

(@fkoomek)

Há 1 ano

Bem, antes disso, o URL do produto com uma notificação de erro era o mesmo que o URL do produto. Portanto, se a página do produto ainda não tivesse sido armazenada em cache, havia um pequeno risco de ela ser armazenada em cache com esse erro. Portanto, agora que adicionei esse fio de consulta e impedi o armazenamento em cache, a página do produto com uma notificação de erro não pôde ser armazenada em cache.

De qualquer forma, acho que seu plugin afeta fortemente o arquivo ajax. Ele permanece lá mesmo quando desativado no Woocommerce. Depois de desativar seu plugin, ele se dissolve. Tente. ? Obrigado pelo seu apoio

Esta resposta foi modificada há 1 ano por.

(@xootix)

Há 1 ano

Bom saber.

Se você fez alguma alteração em seu modelo de página de arquivo, como adicionar um campo de quantidade, ele se parecerá com uma página de produto.

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *