Ejecutar funcion php en wp-cron
-
Estoy creando una tarea en el cron de **Wordpress** cada un minuto, para poner en contexto debo mencionar que: cree un tema hijo según lo especifica **Wordpress**, agregué un archivo nuevo .php llamado **prices.php** y lo declare en el **functions.php** de este tema hijo así
include('prices.php');
y ahí tengo el siguiente código.// Exit if accessed directly. defined( 'ABSPATH' ) || exit; //Agregar nuevo intervalo de tiempo al cron de wp add_filter( 'cron_schedules', 'new_cron_interval' ); function new_cron_interval( $schedules ) { $schedules['one_minute'] = array( 'interval' => 60, 'display' => esc_html__( 'Cada un minuto' ), ); return $schedules; } //Agregar tarea al cron de wp if ( ! wp_next_scheduled( 'update_prices' ) ) { wp_schedule_event( time(), 'one_minute', 'update_prices' ); } //Actualizar JSON local desde la API add_action( 'update_prices', 'update_prices' ); function update_prices() { define( 'ONLINE', 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin%2Cethereum%2Clitecoin%2Cdash%2Cdogecoin&vs_currencies=usd&include_market_cap=false&include_24hr_vol=false&include_24hr_change=false&include_last_updated_at=false'); if( $data_coingecko = @file_get_contents( ONLINE ) ) { file_put_contents( 'prices.json', $data_coingecko ); } else { exit; } }
El tema hijo y la inclusión del nuevo archivo funcionan perfectamente, el nuevo intervalo de tiempo al cron y la tarea se crean correctamente, el problema es que la función no se ejecuta, simplemente no pasa nada cada un minuto.
Para probar si mi función estaba correcta cree un archivo .php le escribí solo la función y una llamada y lo abrí directamente desde el navegador y efectivamente ahí si funciona.
function update_prices() { define( 'ONLINE', 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin%2Cethereum%2Clitecoin%2Cdash%2Cdogecoin&vs_currencies=usd&include_market_cap=false&include_24hr_vol=false&include_24hr_change=false&include_last_updated_at=false'); if( $data_coingecko = @file_get_contents( ONLINE ) ) { file_put_contents( 'prices.json', $data_coingecko ); echo 'Funciona'; } else { echo 'NO Funciona'; exit; } } update_prices();
Espero haber sido claro en la explicación de mi problema.
Gracias de antemano a quien pueda ayudar.
- El debate ‘Ejecutar funcion php en wp-cron’ está cerrado a nuevas respuestas.