Domanda

Sto lavorando per fornire una serie personalizzata di messaggi tramite blocchi statici in base a determinate condizioni che un cliente possiede.

Ad esempio, mi piacerebbe visualizzare un messaggio di offerta personalizzato contro un messaggio di offerta personalizzato alternativo a seconda che un cliente sia registrato e se hanno effettuato un acquisto in passato.

Ho creato tutti i blocchi statici e tutti mostrano dove dovrebbero se li abiliti manualmente.Quello che desidero imparare, è come / dove posso inserire la logica condizionale che determinerà se un blocco verrà utilizzato o meno.

Assumendo che dovrò includere questa o la logica condizionale simile su ogni pagina un cliente può navigare verso e su cui vorrei consegnare offerte o messaggi.Alcune pagine riceveranno questo trattamento, altri non lo faranno.

Sto chiedendo principalmente su dove implementare il codice per una pagina non cm per ora.

Grazie per qualsiasi aiuto o commento.

È stato utile?

Soluzione

Dalla tua domanda, non è chiaro che è necessario visualizzare questi blocchi statici.Tuttavia in base alla mia comprensione, ti fornirò alcuni suggerimenti.

Così fondamentalmente hai alcuni blocchi statici con te e devi mostrarli solo quando alcune condizioni sono soddisfatte.

Qui vai.Presumo che sia necessario mostrare questi blocchi nella parte giusta di ogni pagina.Per questo è necessario creare un file di layout local.xml.

File: app/design/frontend/<your_package>/<your_theme>/layout/local.xml

<layout>
    <default> <!-- this layout handle enable its child block appear almost every page -->
        <reference name="right"> <!-- this let static block appear in the right section -->
            <block type="core/template" name="conditional.static.blocks.container" template="staticblocks/contaier.phtml">
                <block type="cms/block" name="static.block.1" as="static_block_1">
                    <action method="setBlockId"><block_id>code-for-sb-1</block_id></action>
                </block>
                <block type="cms/block" name="static.block.2" as="static_block_2">
                    <action method="setBlockId"><block_id>code-for-sb-2</block_id></action>
                </block>
                <!-- continue this step for every block -->
            </block>
        </reference>
    </default>
</layout>
.

File: app/design/frontend/<package>/<theme>/template/staticblocks/contaier.phtml

<?php if({condition_1_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_1'); ?></div>
<?php endif;  ?>

<?php if({condition_2_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_2'); ?></div>
<?php endif;  ?>

<!-- continue this logic here for every static block according to your need  -->
.

Vantaggio di questo metodo è che, ti dà una grande flessibilità.In ogni pagina sul lato destro puoi vedere questo blocco.Dal momento che utilizziamo diverse condizioni nel blocco principale, solo il blocco statico desiderato apparirà in frontend.

Come ho già detto, questa è solo un'idea.Puoi elaborarlo con le tue condizioni.

Spero che aiuti

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