Je suis novice en PHP.
J'essaie de vérifier si l'utilisateur dispose d'un jeton de paiement ou d'une autre valeur qui confirme qu'il a effectué un paiement.
Je veux rediriger la page si le statut de paiement est vide 9ils n'ont pas encore effectué de paiement).
J'ai essayé:
<?php
if(get_post_type()=="sfwd-lessons"){
$lesson_id=get_the_ID();
}else{
$lesson_id=get_post_meta(get_the_ID(),'lesson_id',true);
}
$value = get_field( "new_field", $lesson_id );
$user_status=get_wpmg_woocommerce_payment_tokens($user_id,'token_id',true);
//$user_status='';
if(!empty($value) && empty($user_status)){
header('Location: https://xx/checkouts/checkout-page/');
exit;
?>
mais je ne pense pas que "get_wpmg_woocommerce_payment_tokens" soit un appel valide
y a-t-il un autre appel get_ que je peux faire pour vérifier si le token_id de paiement est vide pour cet utilisateur ?
ou existe-t-il un moyen sur la page de remerciement de woo commerce d'écrire un nouveau champ "payment_status" complet à user_meta_data
Merci
Solution du problème
Ce crochet woocommerce_thankyou
se déclenchera chaque fois que vous actualiserez la page de remerciement.
add_action('woocommerce_thankyou', 'after_order_placed', 10, 1);
function after_order_placed($order_id) {
if (!$order_id)
return;
$order = wc_get_order($order_id);
if ($order->get_date_paid()) {
// Order is paid - Do something
} else {
// Order is NOT paid - Do something else
}
}
Le meilleur crochet pour envoyer des données à un tiers lorsque le paiement de la commande est terminé est woocommerce_payment_complete
.
add_action('woocommerce_payment_complete', 'after_payment_complete');
function payment_complete_callback($order_id) {
if (!$order_id)
return;
$order = wc_get_order($order_id);
if ($order->get_date_paid()) {
// Order is paid - Do something
} else {
// Order is NOT paid - Do something else
}
}
Aucun commentaire:
Enregistrer un commentaire