WOOCS - Sélecteur de devise WooCommerce

Comment faire fonctionner woocommerce-pdf-invoice avec WOOCS

Le plugin woocommerce-pdf-invoice vous permet d'imprimer des factures au format pdf. Mais une chose - pas de filtres ni d'actions pour que cela fonctionne bien avec le WOOCS. J'ai donc décidé d'enquêter sur cette question et de résoudre ces tâches en piratant le code du plugin woocommerce-pdf-invoice. Vous pouvez faire de même si vous souhaitez utiliser woocommerce-pdf-invoice avec WOOCS.

  1. Cliquez sur plugins/woocommerce-pdf-invoice/includes/woo-pdf-invoice.class.php
  2. Nous devons apporter des modifications à 8 endroits dans le fichier woo-pdf-facture.class.php
  3. Finf fonction total et changement de code sur suivant :
    public function total() { if(class_exists('WOOCS')) { return (double) WOOCS::normalize_order_data($this->orderData->id, $this->orderData->order_total); } else { return (double) $this->orderData->order_total; } }
  4. Vous obtiendrez quelque chose comme ceci :
  5. Recherchez ensuite la fonction row_total et insérez-y le code suivant comme à l'écran :
    if(class_exists('WOOCS')) { $line_subtotal = WOOCS::normalize_order_data($this->orderData->id, $line_subtotal); }
  6. Recherchez ensuite la fonction item_price et remplacez le code par celui-ci comme à l'écran :
    if((((double) $price) * (int) $item['qty']) == (double) $this->row_total($item, $this->orderData)) { if(class_exists('WOOCS ')) { return WOOCS::normalize_order_data($this->orderData->id, $price); } else { return $price; } } else { if(class_exists('WOOCS')) { return WOOCS::normalize_order_data($this->orderData->id, $price); } else { return $price; } }
  7. Recherchez ensuite la fonction get_totals et remplacez le code suivant comme à l'écran :
    if(class_exists('WOOCS')) { $totals['subtotal'] = array( 'name'=>$this->invoiceOptions['woo_pdf_title_subtotal'], 'value'=>(double) WOOCS::normalize_order_data($ this->orderData->id, $subtotal), ); } else { $totals['subtotal'] = array( 'name'=>$this->invoiceOptions['woo_pdf_title_subtotal'], 'value'=>(double) $subtotal, ); }
  8. Dans la même fonction, recherchez la chaîne //Afficher les taxes en dessous du total uniquement si le sous-total est affiché, taxes incluses et insérez le code suivant :
    if(class_exists('WOOCS')) { $totals['total'] = array( 'name'=>$this->invoiceOptions['woo_pdf_title_total'], 'value'=>(double) WOOCS::normalize_order_data($ this->orderData->id, $this->orderData->order_total), ); } else { $totals['total'] = array( 'name'=>$this->invoiceOptions['woo_pdf_title_total'], 'value'=>(double) $this->orderData->order_total, ); }
  9. Recherchez la fonction render_left_block et remplacez le code suivant :
    if(class_exists('WOOCS')) { $blocks = array( 'amount_in_words'=>array( 'title'=>$this->invoiceOptions['woo_pdf_title_amount_in_words'], 'text'=>$this->get_amount_in_words(( double)WOOCS::normalize_order_data($this->orderData->id, $this->orderData->order_total), $this->invoiceOptions), ), ); } else { $blocks = array( 'amount_in_words'=>array( 'title'=>$this->invoiceOptions['woo_pdf_title_amount_in_words'], 'text'=>$this->get_amount_in_words((double) $this->orderData ->order_total, $this->invoiceOptions), ), ); }
  10. Accédez à la fonction amount_in_words et remplacez le code suivant :
     if(class_exists('WOOCS')) { $currency = get_post_meta($this->orderData->id, '_woocs_order_currency', TRUE); if(!$self) { $string .= ' '; $chaîne .= $devise; } }else{ if(!$self) { $string .= ' '; $string .= _n('dollar', 'dollars', $number, 'woo_pdf'); } }

 

C'est tout!