/** * Restaure la transaction dans le panier WooCommerce * Endpoint: ?miassar_restore=1&transaction=XXX&token=YYY */ public function restore_transaction_to_cart() { if (!isset($_GET['miassar_restore']) || !isset($_GET['transaction']) || !isset($_GET['token'])) { return; } // Vérifier WooCommerce if (!$this->wc_ready()) { wp_die('Le système de paiement n\'est pas disponible.'); } $transaction_id = sanitize_text_field($_GET['transaction']); $token = sanitize_text_field($_GET['token']); global $wpdb; $transaction = $wpdb->get_row($wpdb->prepare( "SELECT * FROM {$this->table_name} WHERE transaction_id = %s", $transaction_id )); if (!$transaction) { wp_die('Transaction introuvable.'); } // Vérifier le token $salt = defined('AUTH_SALT') ? AUTH_SALT : 'miassar_default_salt'; $expected_token = hash('sha256', $transaction_id . $transaction->security_code . $salt . date('Y-m-d')); if (!hash_equals($expected_token, $token)) { wp_die('Lien de paiement invalide.'); } // Vérifier le statut if ($transaction->status === 'paid') { wp_die('Cette transaction a déjà été réglée.'); } // Récupérer ou créer le produit $product_id = $transaction->product_id; if (!$product_id || !wc_get_product($product_id)) { // Créer un nouveau produit $product = new WC_Product_Simple(); $product->set_name($transaction->product_name . ' - Miassar'); $product->set_price($transaction->total_amount); $product->set_regular_price($transaction->total_amount); $product->set_virtual(true); $product->set_catalog_visibility('hidden'); $product->set_status('publish'); $product->update_meta_data('_miassar_transaction', $transaction_id); $product_id = $product->save(); // Mettre à jour la transaction $wpdb->update( $this->table_name, array('product_id' => $product_id), array('transaction_id' => $transaction_id) ); } // Restaurer le panier WC()->cart->empty_cart(); WC()->cart->add_to_cart($product_id, 1); // Rediriger vers le checkout wp_safe_redirect(wc_get_checkout_url()); exit; }
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wordpress/wp-content/plugins/miassar-payment-system/includes/class-transaction.php:909) in /var/www/html/wordpress/wp-includes/pluggable.php on line 1535

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wordpress/wp-content/plugins/miassar-payment-system/includes/class-transaction.php:909) in /var/www/html/wordpress/wp-includes/pluggable.php on line 1538