Skip to content

Instantly share code, notes, and snippets.

@claudiosanches
Created December 1, 2012 22:06
Show Gist options
  • Save claudiosanches/4185487 to your computer and use it in GitHub Desktop.
Save claudiosanches/4185487 to your computer and use it in GitHub Desktop.
WooCommerce - Updated Clint Points
<?php
function cs_updated_client_points( $order_id ) {
global $woocommerce;
// Cria logs de para debugar o código.
// Os logs irão para wp-content/plugins/woocommerce/logs/testando.txt
// Você precisa dar permissão de escrita nesta pasta para funcionar!
$log = $woocommerce->logger();
// Nome do custom field que iremos usar para salvar no perfil do usuário:
$user_meta = 'loyalty_points';
// Pega os detalhes da compra.
$order = new WC_Order( $order_id );
// Grava todos os detalhes no arquivo de log.
$log->add( 'testando', 'Detalhes do pedido: ' . print_r( $order, true ) );
// ID do usuário.
$user_id = $order->customer_user;
// Valor total da compra.
$order_total = $order->order_total;
// Total de pontos pela compra.
// Você tinha dito que queria por 2 cada ponto!
$order_points = $order_total / 2;
// Pega a quantidade anterior de pontos.
$old_points = get_user_meta( $user_id, $user_meta, true );
$log->add( 'testando', 'Quantidade antiga de pontos: ' . print_r( $old_points, true ) );
// Soma pontos antigos com os novos.
$new_points = $old_points + $order_points;
$log->add( 'testando', 'Quantidade nova de pontos: ' . print_r( $new_points, true ) );
// Atualiza o usermeta.
update_user_meta( $user_id, $user_meta, $new_points );
}
add_action( 'woocommerce_payment_complete', 'cs_updated_client_points', 10, 1 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment