2016-12-13 1 views
0

Je suis nouveau à Opencart et j'essaye d'afficher le rabais de quantité dans les produits décrits - sans succès. J'utilise Opencart 2.3. Fondamentalement, ce que je voudrais réaliser est de passer les variables quantity et price du fichier de contrôleur featured.php au fichier de vue featured.tpl.Opencart 2.3 - montrant la réduction dans l'extension décrite

Voici ce que j'ai essayé:

1) Dans le fichier /catalog/controller/extension/module/featured.php après la $product_info = $this->model_catalog_product->getProduct($product_id); j'ai ajouté le code suivant:

$discounts = $this->model_catalog_product->getProductDiscounts($product_id); 

$data['discounts'][] = array(); 

foreach ($discounts as $discount) { 
    $data['discounts'][] = array(
'quantity' => $discount['quantity'], 
'price' => $discount['price'] 
); 
} 

2) Dans le fichier /catalog/view/theme/default/template/extension/module/featured.tpl j'ai ajouté le code suivant:

<?php foreach ($discounts as $discount) { ?> 
<span> 
<?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?> 
</span><br> 
<?php } ?> 

Toute aide serait grandement appréciée!

J'ai essayé plusieurs autres variantes de code (par exemple la solution fournie here), mais sans succès.

Répondre

1

Aller au catalogue \ langue \ fr-fr \ 'extension \ Module \ featured.php Ajouter code suivant:

$_['text_discount']   = ' or more '; 

Aller au catalogue \ contrôleur \' extension \ Module \ featured.php Trouver les lignes suivantes de code:

$data['heading_title'] = $this->language->get('heading_title'); 

suivant Ajouter des lignes de code:

$data['text_discount'] = $this->language->get('text_discount'); 

Trouver les lignes suivantes de code:

foreach ($products as $product_id) { 
    $product_info = $this->model_catalog_product->getProduct($product_id); 

Ajouter les lignes suivantes de code:

$discounts = $this->model_catalog_product->getProductDiscounts($product_id); 

      $product_info['discounts'] = array(); 

      foreach ($discounts as $discount) { 
       $product_info['discounts'][] = array(
        'quantity' => $discount['quantity'], 
        'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']) 
       ); 
      } 

Trouve suivant les lignes de code:

$data['products'][] = array(
        'product_id' => $product_info['product_id'], 

juste en dessous Additionnez les lignes de code suivantes:

'discounts'=>$product_info['discounts'], 

Maintenant, allez au catalogue \ view \ thème \ YOUR_ACTIVE_THEME \ template \ 'extension \ Module \ featured.tpl

Trouver des lignes de code suivantes:

<div class="button-group"> 
      <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"> 

Ajouter au-dessus ou où vous voulez montrer, mais besoin à l'intérieur de la gamme de produits:

<?php if ($product['discounts']) { ?> 
     <ul> 
      <hr> 
      <?php foreach ($product['discounts'] as $discount) { ?> 
      <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> 
      <?php } ?> 
     </ul> 
     <?php } ?> 

Vous pouvez télécharger le ocmod à Show Discounts at featured module Ocmod OpenCart 2.3.02

+0

incroyable! Merci beaucoup! Vous m'avez sauvé beaucoup de travail :) – naecone