Cómo agregar una columna de suscripción al boletín de noticias a la cuadrícula de clientes en Magento 2

Estás leyendo la publicación: Cómo agregar una columna de suscripción al boletín de noticias a la cuadrícula de clientes en Magento 2

¿Está buscando un método para? Encuentre la solución completa aquí.

Un boletín electrónico es un importante canal de comunicación. Desde promocionar nuevos productos y enviar códigos de cupones exclusivos hasta saludar a los clientes en sus aniversarios, los boletines son un método excelente para nutrir las relaciones marca-cliente.

Los clientes suscritos al boletín generalmente están un paso más cerca de ser defensores de su marca, o dicen que son clientes más leales. Hacer un seguimiento de los suscriptores de su boletín informativo puede ayudarlo a evaluar el esfuerzo y el rendimiento de su marca. Magento 2 ofrece una cuadrícula de back-end diferente para administrar las suscripciones a boletines de forma predeterminada. Si desea una imagen más grande, esta cuadrícula de back-end separada puede no ser suficiente para usted.

Recientemente trabajé en uno de esos requisitos para un cliente que quería mostrar el estado de suscripción al boletín en la cuadrícula del cliente. En esta publicación de blog, compartiré el método paso a paso que utilicé para agregar una columna de suscripción al boletín a la cuadrícula de clientes en Magento 2.

Método para agregar la columna de suscripción al boletín de noticias a la cuadrícula de clientes en Magento 2

Para agregar el Boletín de suscripción columna a la cuadrícula de clientes en Magento 2, necesitamos anular la cuadrícula de clientes predeterminada. Estos son los pasos que seguí para hacerlo:

Paso 1: Registre un nuevo módulo creando un registro.php archivo en el directorio con el siguiente código:

🔥 Recomendado:  Las 11 mejores oportunidades de franquicias de limpieza en seco

\Magento\Framework\Component\ComponentRegistrar::registrar(

\Magento\Framework\Component\ComponentRegistrar::MÓDULO,

‘Meetanshi_CustomerSubscriptionStatus’,

__DIR__

);

Paso 2: Ahora, crea un archivo en el directorio con el siguiente código:

Paso 3: En el mismo directorio, cree un archivo para definir el complemento con el siguiente código:

xsi:noNamespaceSchemaLocation=”urn:magento:framework:ObjectManager/etc/config.xsd”>

type=”Meetanshi\CustomerSubscriptionStatus\Model\Customer\Grid\CollectionPlugin” sortOrder=”5″/>

Etapa 4: Ahora, cree un archivo de complemento con el nombre que definimos en el archivo anterior, en el app/code/Meetanshi/CustomerSubscriptionStatus/Model/Customer/Grid/ directorio con el siguiente código:

getSelect(); $seleccionar->joinLeft(
[“secondTable” => $collection->getTable(“newsletter_subscriber”)]’main_table.entity_id = secondTable.customer_id’,
[‘subscriber_status’]
); $colección->addFilterToMap(‘main_table.subscriber_status’, ‘secondTable.subscriber_status’); } devuelve $colección; } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

espacio de nombres Meetanshi\CustomerSubscriptionStatus\Model\Customer\Grid;

use Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory;

clase CollectionPlugin

{

función pública afterGetReport(

CollectionFactory $sujeto,

$colección,

$solicitudNombre

){

if ($requestName == ‘customer_listing_data_source’) {

$seleccionar = $colección->getSelect();

$seleccionar->joinLeft(

[“secondTable” => $collection->getTable(“newsletter_subscriber”)],

‘main_table.entity_id = secondTable.customer_id’,

[‘subscriber_status’]

);

$colección->addFilterToMap(‘main_table.subscriber_status’, ‘secondTable.subscriber_status’);

}

devolver $colección;

}

}

Paso 5: Crear un archivo en el aplicación/código/Meetanshi/CustomerSubscriptionStatus/view/adminhtml/ui_component/ directorio con el siguiente código:

select select

class=”Meetanshi\CustomerSubscriptionStatus\Ui\Component\Listing\Columns\Statuses”>

seleccionar

seleccionar

Paso 6: Crear archivo en el app/código/Meetanshi/CustomerSubscriptionStatus/Modelo/Suscripción/ directorio con el siguiente código:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

espacio de nombres Meetanshi\CustomerSubscriptionStatus\Model\Subscription;

use Magento\Framework\Option\ArrayInterface;

clase Estados implementa ArrayInterface

{

/**

* Recuperar matriz de opciones.

*

* Matriz @return

*/

función pública toOptionArray()

{

$resultado = [

            [‘value’ => 1, ‘label’ => __(“Subscribed”)],

[‘value’ => 2, ‘label’ => __(“Not Activate”)],

[‘value’ => 3, ‘label’ => __(“Not Subscribed”)],

[‘value’ => 4, ‘label’ => __(“Not Confirmed”)],

];

devolver $resultado;

}

}

Esto convertirá los estados de suscripción al boletín en etiquetas, que se mostrarán en la cuadrícula de clientes.

Paso 7: Por último, cree un archivo en el CustomerSubscriptionStatus\CustomerSubscriptionStatus\Ui\Component\Listing\Columns directorio con el siguiente código:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

espacio de nombres Meetanshi\CustomerSubscriptionStatus\Ui\Component\Listing\Columns;

use Magento\Framework\View\Element\UiComponent\ContextInterface;

use Magento\Framework\View\Element\UiComponentFactory;

use Magento\Ui\Component\Listing\Columns\Column;

Los estados de clase extienden la columna

{

construcción de función pública (

ContextInterface $contexto, UiComponentFactory $uiComponentFactory, matriz $componentes = []matriz $datos = []

) {

parent::construct($contexto, $uiComponentFactory, $componentes, $datos);

}

función pública prepareDataSource(matriz $dataSource)

{

if (isset($FuenteDeDatos[‘data’][‘items’])) {

foreach ($ fuente de datos[‘data’][‘items’] como & $elemento) {

$estado = $elemento[‘subscriber_status’];

si ($estado == 1)

$nombre = __(‘Suscrito’);

elseif ($estado == 3)

$nombre = __(‘No Suscrito’);

demás

$nombre = __(”);

$artículo[$this->getData(‘name’)] = $nombre;

}

}

devolver $ fuente de datos;

}

}

& ¡eso es todo!
Lectura relacionada: Cómo habilitar el boletín Ajax en Magento 2

Agregará la columna de suscripción al boletín a la cuadrícula de clientes en Magento 2.

¿Le resultó útil esta solución de Magento? Déjame saber abajo en los comentarios.

Comparte esta publicación con tus amigos y difunde el conocimiento de Magento. 😃

Gracias por leer…! 🍀