Muchos complementos de WordPress, incluidas descargas digitales fáciles y SEO de WordPress, ofrecen códigos de descuento a cambio de permitir el seguimiento anónimo. Es una oferta inteligente de hacer porque los datos son valiosos. Pero también es una excelente opción para los usuarios de complementos. Este artículo se basa en mi experiencia en la configuración de dicho sistema para mis formularios de caldera de complemento. Le mostraré cómo configuramos descargas digitales fáciles (EDD) en nuestro sitio para generar dinámicamente códigos de descuento. También mostraré cómo configuré los correos electrónicos que proporcionan los códigos.
Este debería ser un tutorial útil para aquellos que desean aprender a trabajar con descuentos programáticos de EDD y para un ejemplo práctico de cómo funciona el sistema pseudoconocron de WordPress. Aunque no lo cubro en este artículo, es posible que esté interesado en descubrir cómo capturar a los usuarios en su complemento para obtener más información, puede consultar las publicaciones de Postmius y WordImprress. Nociones básicas para comenzar, deberá integrar un formulario simple en su sitio que realice una solicitud de publicación a una URL externa y enviar la dirección de correo electrónico del usuario. Asegúrese de que el formulario esté bien integrado con su interfaz de usuario y que tenga la opción de rechazar la búsqueda que impida la oferta nuevamente.
Una vez que esté listo, cree un complemento obligatorio (Mu-Plugin) en su sitio. Esto reduce el tiempo requerido para la aplicación. Cuando alguien opta por rastrear el uso, esa solicitud al sitio web de Caldera Forms tiene lugar en segundo plano y no necesita cargar el tema o nada. Además, siempre quiero que se inicie este sistema, por lo que “tengo que usar” el complemento. Antes de comenzar, asegúrese de haber creado dos archivos HTML para sus correos electrónicos. Usé Bee para crear el código HTML para mi correo electrónico. Lo importante que debe hacer es usar un sustituyente fácil de reemplazar en su correo electrónico por el código real. Este sistema es un sistema bastante simple, por lo que construí el mío en un solo mu-pluin, el malvado. El suyo podría volverse más sofisticado y requerir un director, y eso está bien. Recuerde, los MU-Plugis no cobran como los complementos habituales, necesita un archivo en la raíz de los plugs mu que incluyen archivos en la carpeta. La primera versión de lo que hice tenía solo dos funciones, ambas las incorporaron. Más tarde agregué el seguimiento de correos electrónicos a una mesa personalizada. Hice esto por dos razones. En primer lugar, quería seguir las conversiones y, en segundo lugar, necesitaba una forma de evitar varios correos electrónicos a la misma persona. Por ahora, solo te mostraré lo básico.
La primera función, que está conectada a ella, hace cuatro cosas. En primer lugar, valida la solicitud recibida, entonces, si pasa, crea el código de reducción. Luego envíe un correo electrónico con ese código y luego programe que el segundo correo electrónico se envíe en una semana. La segunda función es la llamada para el evento WP-Cron que envía el segundo correo electrónico. Antes de describir cómo funcionan, hagamos un enfoque breve para el WP-Chron, que es esencial para este sistema. El servidor de bases WP-Cron tiene un sistema llamado Chron que se utiliza para programar tareas que deben ejecutarse en una fecha posterior. WP-CRON es un sistema integrado de WordPress diseñado para administrar las tareas programadas de manera similar a Chron. La distinción importante es que, debido a que Chron es un programa que se ejecuta en su servidor, puede ejecutar una tarea exactamente en el momento o el intervalo que se establece . WP-cron es parte de su sitio y solo puede ejecutarse cuando se establece una solicitud. Por lo tanto, es importante tener en cuenta que cuando programas un evento WP-Chron, no digas “Haz esto en X Hour”. Usted dice “Haga esto lo antes posible después de X” y lo más temprano sucederá es después de la primera solicitud a su sitio que toma con acciones retrasadas. Normalmente, cuando se usa add_action (), la llamada inversa que usa se ejecuta en la misma sesión, tan pronto como se llama a Do_Action () para ese gancho. Con WP-CRON, use add_action para la llamada inversa, pero especifique un retraso hasta que esa acción se desencadene.
Piénselo como wp_schedule_single_event () como una acción retrasada. En lugar de hacer la acción de inmediato, lo haces una vez en el futuro. Eche un vistazo a este ejemplo: <? Php // realiza la acción diez_mines
wp_schedule_single_event (tiempo () + 600, 'ten_minutes_late_hook');
/** La repetición cron roja*/
add_action ('Ten_Minutes_Late_Hook', function () {
// ahora son diez minutos después
}); Este es un evento único, podríamos haber usado wp_schedule_event () para crear una tarea recurrente, pero no es necesario aquí.
La otra cosa que podríamos haber hecho es transmitir datos a la llamada inversa. Esto se hace con el tercer argumento de wp_schedule_single_event (). Tenga en cuenta que estos datos se almacenan en la base de datos y, por lo tanto, afecta el rendimiento. Entonces, si necesita un objeto WP_Post en la llamada inversa del evento, es mejor transmitir la ID de publicación y recibir el objeto de publicación en la llamada inversa, como en este ejemplo, que cambiará el estado de una publicación a 4 Semanas después de que se creó: post_status = ‘Old’;
wp_update_post ($ post);
}
} El primer correo electrónico se envía el primer correo electrónico tan pronto como se envíe la solicitud inicial. Como dije anteriormente, tendremos que validar la solicitud recibida y crear un código de reducción de EDD. Los COD de reducción en EDD se generan utilizando la función EDD_STORE_DISPOND (). Así es como creo un código de descuento del 10%, usando una cadena aleatoria. Tenga en cuenta que uso la dirección de correo electrónico del usuario como un nombre de descuento. Esta fue una decisión de diseño que tomé con fines de búsqueda, no es técnicamente necesario.
<? Php
add_action ('init', function () {
// no hagas nada si el tipo de solicitud es incorrecta
if (! isset ($ _post ['Opin-email'])) {

devolver;
}
// Error de devolución si el correo electrónico está mal
If (! Is_email (urlDecode ($ _post [‘optin-email’))) {
wp_send_json_error ([‘Error’ => ‘Correo electrónico-invalid’]);
}
// desinfectar el correo electrónico
$ correo electrónico = sanitize_email (urlDecode ($ _post [‘optin-email’));
// Crea un código de descuento aleatorio
$ Pool = Array_Merge (rango (0.9), rande (‘a’, ‘z’), rande (‘a’, ‘z’));
$ code = ”;
para ($ x = 0; $ x <3; $ x ++) {
para ($ i = 0; $ i $ código,
‘Nombre’ => $ Correo electrónico,
‘status’ => ‘activo’,
‘is_single_use’ => 1,
‘cantidad’ => ’10’,
‘expiración’ => date (‘m/d/yh: i: s’, $ expires), ‘type’ => ‘porcentaje’,
‘max’ => 1,
‘usa’ => 1
);
$ id = edd_store_discount ($ detalles, nulo);
// Verifique los errores
if (! is_numeric ($ id)) {
wp_send_json_error ([‘Error’ => ‘Error al crear una reducción’]);
}
/** Enviar correo electrónico aquí **/
}); Esto nos lleva al punto en que tenemos nuestro código de descuento y su identificación. También tenemos una dirección de correo electrónico desinfectada: tenga en cuenta que no confía en las entradas. Ahora debemos agregar el correo electrónico y programar un evento:
‘Correo electrónico-invalid’]);
}
// desinfectar el correo electrónico
$ correo electrónico = sanitize_email (urlDecode ($ _post [‘optin-email’));
// Crea un código de descuento aleatorio
$ Pool = Array_Merge (rango (0.9), rande (‘a’, ‘z’), rande (‘a’, ‘z’));
$ code = ”;
para ($ x = 0; $ x <3; $ x ++) {
para ($ i = 0; $ i $ código,
‘Nombre’ => $ Correo electrónico,
‘status’ => ‘activo’,
‘is_single_use’ => 1, ‘cantidad’ => ’10’,
‘expiración’ => date (‘m/d/yh: i: s’, $ expires),
‘Tipo’ => ‘porcentaje’,
‘max’ => 1,
‘usa’ => 1
);
$ id = edd_store_discount ($ detalles, nulo);
// Verifique los errores
if (! is_numeric ($ id)) {
wp_send_json_error ([‘Error’ => ‘Error al crear una reducción’]);
}
// Obtener el código de descuento
$ Code_redusion = edd_get_discount_code ($ id);
// Configuración del correo electrónico
$ from_name = “tu nombre”;
$ from_address = ‘[correo electrónico protegido]’;
$ Headers = “De: {$ from_name}
“;
$ Encabezados. = “Respuesta a: {$ from_address}
“;
$ Encabezados. = “Tipo de contenido: texto/html; set de caracteres = utf-8
“;
ob_start ();
Incluye (dirname (__file__). ‘/Email/emmail-first.html’);
$ mensaje = ob_get_clean ();
$ mensaje = str_replace (‘{código}’, $ cod_reduction, $ mensaje);
$ envía = wp_mail ($ correo electrónico, ‘su código de descuento’, $ mensaje, $ encabezados);
if ($ enviado) {
// Programe el correo electrónico de recordatorio
$ send = $ expires – 82800;
wp_schedule_single_event ($ send, ‘Opinemail’, [$ descuento_code, $ correo electrónico]);
wp_send_json_success ([‘éxito’ => true, ‘error’ => falso]);
}de lo contrario{
wp_send_json_error ([‘correo electrónico’ => ‘El correo electrónico no se ha enviado.’]);
}
}); Este programa el correo electrónico de Optine para que el evento se ejecute 12 días después. Este evento se ejecutará una vez para cada usuario, pero cada vez tendrá una dirección de correo electrónico y un código de descuento diferente, que se ha transmitido al tercer parámetro de wp_schedule_single_event ().
El segundo correo electrónico ahora que se programará el evento, necesitamos una función de llamada inversa. Deberá estar conectado, utilizando add_action para el gancho “OptInEmail”. En nuestra llamada, podemos esperar dos argumentos: E -Mail y código de descuento. Dije “esperé a sí mismo”, porque nunca está seguro de suponer que cualquier programa funciona correctamente o que cualquier datos que salgan de la base de datos es correcto. Es por eso que querremos validar y desinfectar el correo electrónico y el código primero antes de enviar el segundo correo electrónico. <
Send_second_email function ($ args) {
if (isset ($ args [0]) && is_mail ($ args [0])) {
$ correo electrónico = sanitize_email ($ args [0]);
}de lo contrario{
devolver;
}
if (isset ($ args [1]) && is_string ($ args [1])) {
$ code = strip_tags ($ args [1]);
}de lo contrario{
devolver;
}
ob_start ();
Incluye (dirname (__file__). '/Email/email day-before.html');
$ mensaje = ob_get_clean ();
$ Message = String ('{Code}', $ Code, $ Message);
$ from_name = "tu nombre";
$ from_address = '[correo electrónico protegido]';
$ Headers = "De: {$ from_name}
“;
$ Encabezados. = “Respuesta a: {$ from_address}
“;
$ Encabezados. = “Tipo de contenido: texto/html; set de caracteres = utf-8
“;
$ SENT = wp_mail ($ args [1], ‘¡la última oportunidad de usar su código de descuento de los formularios de caldera!’, $ mensaje, $ encabezados);
Creación de opciones estimuladas con descargas digitales fáciles de códigos de descuento
Tags Creación de opciones estimuladas con descargas digitales fáciles de códigos de descuento
homefinance blog