Домой Каталог: Дополнения WP-Recall Freelance NextGen Уведомления на странице, в личном кабинете 2часть
10ответ(ов) в теме
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
1
08:55
Версия WP-Recall: 16.8.0
Версия дополнения: 1.3.3
Ссылка на страницу: http://joball.ru/task/

Здравствуйте, в процессе добавления кода об уведомлении на сайте при помощи плагина RCL-Notification, появились некоторые сложности. А именно код добавления уведомления о новом сообщении не работает, прикладываю код.

add_action( 'rcl_chat_add_message', 'rcl_notify_task_about_chat_message', 10 );
function rcl_notify_task_about_chat_message( $messageData ) {
	global $user_ID, $wpdb;

	if ( ! isset( $_POST['fng-task'] ) || $user_ID == $messageData['user_id'] )
		return false;

	$taskId = $_POST['fng-task'];

	$task = get_post( $taskId );

	$performer = get_post_meta( $taskId, 'fng-task', 1 );

	$users = array( $performer, $task->post_author );

	$activeUsers = $wpdb->get_col( "SELECT user_id FROM " . RCL_PREF . "chat_users WHERE chat_id='" . $messageData['chat_id'] . "' AND user_activity >= ('" . current_time( 'mysql' ) . "' - interval 1 minute)" );

	foreach ( $users as $userId ) {

		if ( $userId == $user_ID || in_array( $userId, $activeUsers ) )
			continue;

		$args = array(
		'user_id'		 => $userId,
		'notice_subject' => 'Новое сообщение в рабочей области',
		'notice_content' => 'В рабочей области задания <a href="' . get_permalink( $request->task_id ) . '">' . get_permalink( $request->task_id ) . '</a>  появилось новое сообщение.'
		);
	rcl_add_notification( $args );
		
	}
	
	return false;
}

P.S.
Заметил, что на почту уведомление тоже не отправляет. Грешу на версию самого WP-recall, до последней не обновлен.

0
Андрей CS
не в сети 2 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16949
2
09:24

xabarov-94@mail.ru сказал(а)

$performer = get_post_meta( $taskId, 'fng-task', 1 );

тут ошибка, должно быть

$performer = get_post_meta( $taskId, 'fng-performer', 1 );

вижу, что проблема и в коде дополнения, поправлю в обновлении, пока проверьте работу скрипта

0
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
3
10:34

К сожалению, данное изменение проблему не решило.

0
Андрей CS
не в сети 2 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16949
4
10:46

пробуйте так изменить

add_action( 'rcl_chat_add_message', 'rcl_notify_task_about_chat_message', 10 );
function rcl_notify_task_about_chat_message( $messageData ) {
	global $user_ID, $wpdb;

	if ( ! isset( $_POST['fng-task'] ) )
		return false;

	$taskId = $_POST['fng-task'];

	$task = get_post( $taskId );

	$performer = get_post_meta( $taskId, 'fng-task', 1 );

	$users = array( $performer, $task->post_author );

	$activeUsers = $wpdb->get_col( "SELECT user_id FROM " . RCL_PREF . "chat_users WHERE chat_id='" . $messageData['chat_id'] . "' AND user_activity >= ('" . current_time( 'mysql' ) . "' - interval 1 minute)" );

	foreach ( $users as $userId ) {

		if ( in_array( $userId, $activeUsers ) )
			continue;

		$args = array(
		'user_id'		 => $userId,
		'notice_subject' => 'Новое сообщение в рабочей области',
		'notice_content' => 'В рабочей области задания <a href="' . get_permalink( $request->task_id ) . '">' . get_permalink( $request->task_id ) . '</a>  появилось новое сообщение.'
		);
	rcl_add_notification( $args );
		
	}
	
	return false;
}

0
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
5
11:03

И заменить task на performer в переменной $performer. Да, все заработало, спасибо. А можете еще вот с этим кодом помочь:

add_action( 'fng_task_claim', 'rcl_notify_task_about_claim', 10, 3 );
function rcl_notify_task_about_claim( $task_id, $user_id, $text_claim ) {

	$task = get_post( $task_id );

	$args = array(
		'user_id'		 => $adminID,//Вот здесь какую переменную брать?
		'notice_subject' => 'Подана жалоба в арбитраж',
		'notice_content' => 'В задании <a href="' . get_permalink( $request->task_id ) . '">' . get_permalink( $request->task_id ) . '</a>  одним из участников была подана жалоба.' . $text_claim . 'Вы можете принять решение, а также просмотреть рабочую область на странице редактирования задания.'
		);

	rcl_add_notification( $args );
}

0
Андрей CS
не в сети 2 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16949
6
11:06

xabarov-94@mail.ru сказал(а)
'user_id' => $adminID,//Вот здесь какую переменную брать?

указывайте ИД админа

0
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
7
11:08

А нельзя сделать рассылку всем админам?

0
Андрей CS
не в сети 2 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16949
8
11:14

можно, для этого получаете всех админов функцией get_users(), прогоняете их в цикле и производите регистрацию уведомления для каждого по такому же принципу

0
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
9
11:20

Понял, спасибо

0
не в сети давно
На сайте с
Участник
Тем 8
Сообщения 33
10
16:45

Можно закрыть тему, со всем помогли, спасибо.

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