Plugin Woocommerce
-
Bom dia pessoas humanas,
estou desenvolvendo um plugin pra avaliar a disponibilidade do produto baseado em geolocalização, nessa validação também faço alteração do preço do produto.
A questão é, quando o cliente lista os produtos os valores já foram alterados segundo a cidade do cliente, toda via o método add_to_cart:
public function add_to_cart( $product_id = 0, $quantity = 1, $variation_id = 0, $variation = array(), $cart_item_data = array() )
recebe apenas o id do produto, busca os dados no banco e insere na global @$woocommerce. Pois bem, como esse valor que vem do banco é o default tenho que rodar uma function que altere o preço com base no valor para a cidade do cliente, a function abaixo.
add_action(‘woocommerce_before_cart’, ‘zipcode_cart_price_product’);
function zipcode_cart_price_product()
{
global $woocommerce;
$cartProducts = $woocommerce->cart->get_cart();
foreach ($cartProducts as $cartProduct ){
$product = $cartProduct[‘data’];
if(!$product->is_virtual()){
$newPrice = 77; // for test
$product->adjust_price($newPrice);
}
}
$calculateTotals = $woocommerce->cart->calculate_totals();
}
Até ai tudo beleza, quando o cliente abre o carrinho, a lista de produtos está com o preço correto, o total também,
Entretanto quando passo para finalizar a compra, os dados voltaram ao valor default. O carrinho é sempre atualizado a cada etapa, mantendo apenas o id para consulta e quantidade?
Outra dúvida, quando acesso “Finalizar Compra” a lista de produtos e os meios de pagamento ficam com um loading que não some, alguém pode me ajudar nisso tb?
- O tópico ‘Plugin Woocommerce’ está fechado para novas respostas.