Домой WordPress WordPress: Вопросы и ответы Как завести крон в вордпресс для проверки раз в час?
6ответ(ов) в теме
bocman.sev@gmail.com
не в сети 3 года
На сайте с 16.09.2020
Участник
Тем 106
Сообщения 413
1
22:07

хочу проверять пользователей раз в час, помогите пожалуйста
вот что написал .но это вроде через час 1 раз

wp_schedule_event( time(), 'hourly', 'hook_1', $parametri );
 
add_action( 'hook_1', 'proverka', 10, 3 );
 
function proverka() {
	
}

так ?

function proverkal() {}
    
 
// собственно вот он и хук, true_hook_1
add_action('true_hook_1', 'proverka');
 
// time() - текущее время в UNIX-формате, то есть в первый раз задача выполнится моментально
if( !wp_next_scheduled('true_hook_1') )
    wp_schedule_event( time(), 'hourly', 'true_hook_1');

Редакции сообщения
19.10.2020 22:11bocman.sev@gmail.comПричина: не указано
19.10.2020 22:12bocman.sev@gmail.comПричина: не указано
19.10.2020 22:14bocman.sev@gmail.comПричина: не указано
19.10.2020 22:20bocman.sev@gmail.comПричина: не указано
0
Андрей CS
не в сети 22 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
2
09:23

есть же документация и хорошие примеры в интернете, например тут

Вы не можете просматривать опубликованные ссылки

рабочий пример добавления часового события:

// добавляем запланированный хук
add_action( 'wp', 'my_activation' );
function my_activation() {
	if( ! wp_next_scheduled( 'my_hourly_event' ) ) {
		wp_schedule_event( time(), 'hourly', 'my_hourly_event');
	}
}

// добавляем функцию к указанному хуку
add_action( 'my_hourly_event', 'do_this_hourly' );
function do_this_hourly() {
	// делаем что-либо каждый час
}

0
bocman.sev@gmail.com
не в сети 3 года
На сайте с 16.09.2020
Участник
Тем 106
Сообщения 413
3
20:51

подскажите почему не доходит до второго file_put_contents, хотя в не функции $posts_sticky не пустой
// добавляем запланированный хук

add_action( 'wp', 'my_activation' );
function my_activation() {
	if( ! wp_next_scheduled( 'my_hourly_event2' ) ) {
		wp_schedule_event( time(), 'hourly', 'my_hourly_event2');
	}
}


// добавляем функцию к указанному хуку
add_action( 'my_hourly_event2', 'do_this_hourly' );

function do_this_hourly() {
 file_put_contents(__DIR__."/log123.txt", " _!_ ", FILE_APPEND | LOCK_EX); 

	// делаем что-либо каждый час

  $posts_sticky[] = $wpdb->get_results( $wpdb->prepare( "SELECT wp_posts.ID 
  FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )  
  INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) 
  WHERE 1=1  
  AND ( ( wp_postmeta.meta_key = '_extra_featured_post' AND wp_postmeta.meta_value = '1' ) AND mt1.meta_key = 
  '_thumbnail_id') 
  AND wp_posts.post_type = 'post' 
  AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') 
  ORDER BY wp_posts.post_date 
  DESC LIMIT 0, 1000"));

file_put_contents(__DIR__."/log123.txt", " _!!!_ ", FILE_APPEND | LOCK_EX);

file_put_contents(__DIR__."/log123.txt", " _".$posts_sticky[0][0]->ID."_ ", FILE_APPEND | LOCK_EX);

//проверяю их дату 
foreach ($posts_sticky[0] as $id) {

 file_put_contents(__DIR__."/log123.txt", " _true_ ", FILE_APPEND | LOCK_EX);

    $post_date = get_the_date( 'U', $id->ID ); //unix time
    if($post_date  + 86400 < current_time('timestamp', 1)) { // 1day = 86400
        file_put_contents(__DIR__."/log123.txt", " _".$id->ID."_ ", FILE_APPEND | LOCK_EX);
        update_post_meta( $id->ID , '_extra_featured_post', '0'); 

    }
}
  
}

Редакции сообщения
20.10.2020 20:52bocman.sev@gmail.comПричина: не указано
20.10.2020 20:52bocman.sev@gmail.comПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 2 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
4
21:04

повесьте на init и дебажьте. Это основы php

0
bocman.sev@gmail.com
не в сети 3 года
На сайте с 16.09.2020
Участник
Тем 106
Сообщения 413
5
21:14

так просто функция отрабатывает без крона ,вот запрос в базу в на событие в кроне не выполняется

0
bocman.sev@gmail.com
не в сети 3 года
На сайте с 16.09.2020
Участник
Тем 106
Сообщения 413
6
21:20

не прописал global $wpdb; спасибо

0
Тема закрыта. Публикация новых сообщений запрещена.