Cómo ocultar Ordenar por precio y filtro de precios Capa de navegación para no Iniciar sesión ¿Usuario en Magento 1.9?

magento.stackexchange https://magento.stackexchange.com/questions/108673

  •  29-09-2020
  •  | 
  •  

Pregunta

¿Es posible ocultar el Sort by Price y Price Filter Navigation Layer en la página de la lista de productos de la categoría para los usuarios que no están conectados?

¿Fue útil?

Solución 2

Gracias por Claudiu Creanga para obtener ayuda, he modificado su código para trabajar perfecto con mi tema, uso Theme Puro para ICotheme.

  1. Ocultar el tipo por precio
  2. Reemplazar este código en la plantilla \ CATALOG \ Producto \ LISTO \ TOOLBAR.PHTML

                                                <ul id="sort_by" class="sort_by collapse">
                                                <?php foreach ($this->getAvailableOrders() as $_key => $_order): ?>
                                                    <li>
                                                        <a href="<?php echo $this->getOrderUrl($_key, 'asc') ?>"><?php echo $this->__($_order) ?></a>
                                                    </li>
                                                <?php endforeach; ?>
                                            </ul>
    

    con:

                                                <ul id="sort_by" class="sort_by collapse">
                                            <?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
                                                <?php if(!Mage::getSingleton('customer/session')->isLoggedIn()): //not logged in, hide price ?>
                                                    <?php if(strpos($this->__($_order), "Price") === false):  ?>
                                                    <li>
                                                        <a href="<?php echo $this->getOrderUrl($_key, 'asc') ?>"><?php echo $this->__($_order) ?></a>
                                                    </li>
                                                    <?php endif; ?>
                                                <?php else: // logged in ?>
                                                    <li>
                                                        <a href="<?php echo $this->getOrderUrl($_key, 'asc') ?>"><?php echo $this->__($_order) ?></a>
                                                    </li>
    
                                                <?php endif; ?>
                                            <?php endforeach; ?>
                                            </ul>
    

    1. Ocultar la capa de navegación de filtro de precios
    2. Reemplace este código en la plantilla \ CATALOG \ LAYER \ View.PHTML

                          <dt><?php echo $this->__($_filter->getName()) ?></dt>
                      <dd><?php echo $_filter->getHtml() ?></dd>
      

      con:

                      <?php if(!Mage::getSingleton('customer/session')->isLoggedIn()): //not logged in, hide price ?>
                      <?php if(strpos($this->__($_filter->getName()), "Price") === false):  ?>
                          <dt><?php echo $this->__($_filter->getName()) ?></dt>
                          <dd><?php echo $_filter->getHtml() ?></dd>
                      <?php endif; ?>
                  <?php else: // logged in ?>
                      <dt><?php echo $this->__($_filter->getName()) ?></dt>
                      <dd><?php echo $_filter->getHtml() ?></dd>
                  <?php endif; ?>
      

Otros consejos

Es probable que el filtro sea más probable en template\catalog\product\list\toolbar.phtml

El código que es de interés para usted es:

 <select onchange="setLocation(this.value)" title="<?php echo $this->__('Sort By') ?>">
                    <?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
                        <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
                            <?php echo $this->__($_order) ?>
                        </option>
                    <?php endforeach; ?>
                </select>

así que elimine eso y agregue algo como esto:

<select onchange="setLocation(this.value)" title="<?php echo $this->__('Sort By') ?>">
    <?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
        <?php 
            if(!Mage::getSingleton('customer/session')->isLoggedIn()): //not logged in, hide price ?>

                <?php if(strpos($this->__($_order), "Price") === false):  ?>
                    <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
                        <?php echo $this->__($_order) ?>
                    </option>
                <?php else: // logged in ?>

                    <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
                        <?php echo $this->__($_order) ?>
                    </option>
               <?php endif; ?>
           <?php endif; ?>

    <?php endforeach; ?>
</select>

* Código no probado

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top