10ответ(ов) в теме
Здравствуйте, в процессе добавления кода об уведомлении на сайте при помощи плагина 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, до последней не обновлен.
пробуйте так изменить
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; }
И заменить 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 ); }
Тема закрыта. Публикация новых сообщений запрещена.