◉ Recibir un correo cuando una nueva entrada sea publicada. ◉ Aprobar nuevas entradas automáticamente X veces al día. ◉ Cambiar el rol de colaborador a autor a quienes tengan X publicaciones aprobadas. Automatización
◉ Cerrar comentarios de una entrada luego de X días de publicado. ◉ Validar registros por correo y autodescartar los que no hayan validado en X días. ◉ Cualquier orden por combinación de tiempo o acción. Automatización
◉ Se va a indicar a la computadora que ejecute una función cada tantos segundos. ◉ La indicación se tiene que dar una sola vez, de lo contrario se crearían varias órdenes. ◉ Cuando se deja de usar el cron este se tiene que eliminar. Cron
if ( !wp_next_scheduled('cron_day') ) { wp_schedule_event(time(),'daily','cron_day'); } add_action('cron_day','daily_function'); function daily_function() { global $wpdb; $id = $wpdb->get_var( "SELECT id FROM $wpdb->posts WHERE post_type='post' AND post_status='draft' ORDER BY rand() LIMIT 1" ); wp_update_post( array('ID'=>$id,'post_status'=>'publish') ); }
◉ Cada vez que el hook publish_post es llamado consultamos si el autor tiene rol contributor. ◉ Si cumple, preguntamos cuántos artículos tiene publicados. ◉ Si la cantidad de publicados es igual al número que elegimos, cambiamos el rol con wp_update_user( array('ID'=>$id, 'role'=>'author') ); Algoritmo
◉ Usar wp_schedule_event para un cron diario. ◉ Hacemos un query con los argumentos 'comment_status' => 'open', 'date_query' => array('column' => 'post_date', 'after' => '- 30 days') ◉ Recorremos los resultados y en cada uno usamos wp_update_post( array('ID'=>$id,'comment_status'=>'closed') ); Algoritmo
◉ Cuando el hook user_register es llamado: ○ Con add_user_meta(); guardamos un campo con una clave random. ○ Enviar por mail al usuario un enlace a /algo/?codigo=id-claverandom ○ Al visitar el enlace dividimos $_GET['codigo'] y con get_user_meta($id,$clave,$single ); se valida o no al usuario. Algoritmo
◉ Mientras, cuando un cron diario es llamado: ○ Invocamos los ids de los usuarios no validados. ○ Revisamos la fecha de registro en cada usuario con get_userdata->user_registered ○ Si la fecha es superior a los días deseados enviamos un mail al usuario indicando que procedemos a cancelar el registro con wp_delete_user(); Algoritmo