2017-07-19 4 views
0

Mon site dispose d'une caisse qui affiche les avertissements suivants sur une page blanche après la soumission d'un achat test.Avertissement émis lors du transfert de fichiers de site vers le serveur PHP7

Avertissement: Création d'objet par défaut de la valeur vide dans wordpress.php en ligne 1460
Avertissement: ne peut pas modifier les informations d'en-tête - têtes déjà envoyés par (sortie commencé à wordpress.php en ligne 1842

ligne 1460 fait référence à ce qui suit: $totals->quantity = $total_qty;

Ceci est une partie du code:

if (!function_exists('yak_get_totals')) { 
    /** 
    * Return an array containing the total quantity and total price of an array of items. 
    */ 
    function yak_get_totals(&$items) { 
     $total_qty = 0; 
     $total_price = 0; 
     foreach ($items as $key=>$item) { 
      if (!isset($item->price)) { 
       $item->price = yak_calc_price($item->id, $item->cat_id, $item->price); 
      } 
      $total_qty += $item->quantity; 
      $total_price += ($item->price * $item->quantity); 
     } 
     $totals->quantity = $total_qty; 
     $totals->price = $total_price; 
     return $totals; 
    } 
} 

Ce code fait partie d'un plugin que j'utilise sur WordPress depuis plusieurs années. Le développeur du plugin l'a interrompu alors maintenant avec un changement de serveurs j'essaie de mettre à jour le code pour qu'il fonctionne en PHP7. En arrière-plan, le plugin fonctionne comme il se doit. Il envoie un e-mail indiquant que la vente a été effectuée et que l'achat apparaît dans la zone de commande, etc. Cependant, un client ne se rend pas à la page de confirmation de commande, mais reçoit cette page.

Répondre

0

J'ai trouvé la réponse à ce problème. La ligne 1460 qui $totals->quantity = $total_qty;

totaux $ doit être déclaré comme suit: $totals = new StdClass;

Une fois que cela a été fait deux erreurs ne se reproduiraient.

Espérons que cela pourrait aider les autres dans le futur!

Merci!