Domanda

Voglio fornire informazioni più rilevanti per il cliente, in "Ordine Nuovo" modello e-mail dipende dal metodo di pagamento è stata selezionata al momento dell'ordine.

Ho implementato questo metodo da ʍǝɥʇɐɯ qui https://stackoverflow.com/a/6628433 e creato /app/design/frontend/default/default/template/paymentstatus/orderemail.phtml

<?php if($this->getData('order')->getStatus()=='pending_payment_tt'): ?>
    <p style="font-size:12px; line-height:16px; margin:0;">
        <?php echo $this->__('Your Order Status is pending_payment_tt and you paid by Bank Transfer Payment') ?>
    </p>
<?php elseif($this->getData('order')->getStatus()=='awaiting_check'): ?>
    <p style="font-size:12px; line-height:16px; margin:0;">
        <?php echo $this->__('Your Order Status is awaiting_check and you paid by Electronic Check') ?>
    </p>
<?php else: ?>
    <p style="font-size:12px; line-height:16px; margin:0;">
        <?php echo $this->__('Your Order Status is pending and you probably paid by CC') ?>
    </p>
<?php endif; ?>

quindi modificato l'Ordine Nuovo modello di email di inserimento

{{block type='core/template' area='frontend' template='paymentstatus/orderemail.phtml' order=$order}}

Tutto questo funziona abbastanza bene, ma il contenuto del messaggio condizionale risiede in un file di template e ora voglio estrarre il contenuto di una Variabile Personalizzata per consentire un facile accesso per la modifica del messaggio.

Se creo una Variabile Personalizzata 'payment_comment', come devo inserire nel mio orderemail.phtml modello?

Ho trovato questo codice ma non so come integrarlo

$comment = Mage::getModel('core/variable')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->loadByCode('payment_comment')
    ->getValue('html');
È stato utile?

Soluzione

Metodo semplice per aggiungere testo condizionale in una e-mail di servizio modello, ma ancora essere in grado di modificare il contenuto nel backend.

Questo esempio permette di utilizzare diversi di testo in una e-mail a seconda del Metodo di Pagamento utilizzato quando l'ordine è stato effettuato.È possibile adattare la logica per soddisfare le vostre esigenze se non è il metodo di pagamento che si desidera controllare.

Nella vostra e-mail di servizio modello di aggiungere la seguente riga in cui si desidera che il testo condizionale per apparire.

{{block type='core/template' area='frontend' template='myemail/orderemail.phtml' order=$order}}

Creare un PHTML (php) file /app/design/frontend/base/default/template/myemail/orderemail.phtml

<?php
$order = $this->getData('order');
if(is_object($order)) {
    $payment_method_code = $order->getPayment()->getMethodInstance()->getCode();
} else {
    $payment_method_code = "standard";
}

$checkUniqueBlock = Mage::getModel('cms/block')->load('new_order_email_'.$payment_method_code)->getIsActive();
$checkStandardBlock = Mage::getModel('cms/block')->load('new_order_email_standard')->getIsActive();

$block = false; 
if($checkUniqueBlock) {
    $block = $this->getLayout()->createBlock('cms/block')->setBlockId('new_order_email_'.$payment_method_code);
} elseif($checkStandardBlock) {
    $block = $this->getLayout()->createBlock('cms/block')->setBlockId('new_order_email_standard');
}

if($block) {
    echo $block->toHtml();
}

Con questo codice nel file PHTML, è ora possibile creare blocchi statici tramite il backend di Magento che verrà utilizzato a seconda del metodo di pagamento selezionato!

  1. Blocco statico new_order_email_standard verrà utilizzato ogni volta che un metodo di pagamento specifico blocco non trovato/attivo.
  2. Blocco statico new_order_email_banktransfer verrà utilizzato il bonifico Bancario è il metodo di pagamento selezionato.
  3. Blocco statico new_order_email_checkmo quando Check/Money
  4. È possibile continuare a creare come molti diversi i blocchi unici, come richiesto.

Altri suggerimenti

Se si desidera includere dati personalizzati in un modello di posta elettronica dell'ordine è necessario creare un modulo che si estende

Mage_Sales_Model_Order
.

Qui puoi creare i dati che desideri includere nell'e-mail I.e.

public function getCustomData(){
    $_myData="foobar";
    return $_myData;
}
.

E nel modello di posta elettronica dell'ordine è possibile accedere a questi dati con

{{if order.getCustomData()}}
     <p><span class="no-link highlighted-text">{{var order.getCustomData()}}</span></p>
{{/if}} 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top