FOX - Currency Switcher for WooCommerce

So lassen Sie woocommerce-pdf-invoice mit WOOCS zusammenarbeiten

Das Plugin woocommerce-pdf-invoice ermöglicht das Erstellen von PDF-Rechnungen. Allerdings fehlen Filter und Aktionen, um es mit WOOCS korrekt funktionieren zu lassen. Daher habe ich mich mit diesem Problem befasst und die Aufgaben durch einen Hack des Plugin-Codes von woocommerce-pdf-invoice gelöst. Sie können dasselbe tun, wenn Sie woocommerce-pdf-invoice mit WOOCS verwenden möchten.
  1. Gehen Sie zu plugins/woocommerce-pdf-invoice/includes/woo-pdf-invoice.class.php
  2. Wir müssen an 8 Stellen in der Datei woo-pdf-invoice.class.php Änderungen vornehmen.
  3. Suchen Sie die Funktion total und ersetzen Sie den Code durch Folgendes:
    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. Sie erhalten etwa Folgendes: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
  5. Suchen Sie dann die Funktion row_total und fügen Sie dort wie im Screenshot folgenden Code ein: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
    if(class_exists('WOOCS')) {
                    $line_subtotal = WOOCS::normalize_order_data($this->orderData->id, $line_subtotal);
                }
  6. Suchen Sie dann die Funktion item_price und ersetzen Sie den Code durch diesen wie im Screenshot: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
    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. Suchen Sie dann die Funktion get_totals und ersetzen Sie den folgenden Code wie im Screenshot: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
    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. Suchen Sie in derselben Funktion die Zeichenkette //Display taxes below total only if subtotal is displayed including taxes und fügen Sie den folgenden Code ein: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
    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. Suchen Sie die Funktion render_left_block und ersetzen Sie den folgenden Code: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
    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. Gehen Sie zur Funktion amount_in_words und ersetzen Sie den folgenden Code: So bringen Sie woocommerce-pdf-invoice mit WOOCS zum Laufen
     if(class_exists('WOOCS')) {
                    $currency = get_post_meta($this->orderData->id, '_woocs_order_currency', TRUE);
                    if(!$self) {
                        $string .= ' ';
                        $string .= $currency;
                    }
                 }else{
                    if(!$self) {
                        $string .= ' ';
                        $string .= _n('dollar', 'dollars', $number, 'woo_pdf');
                    }
                 }
  Das war's!