function person_select_user_callback($post) { $post = get_post(); wp_nonce_field(basename(__FILE__), 'person_select_user-nonce'); $email = get_post_meta($post->ID, 'email', true); // Get user for person $user_id = get_user_by_person($post->ID); if ($user_id) { $profile_link = add_query_arg('user_id', $user_id, self_admin_url('user-edit.php')); echo '<a href="' . $profile_link . '">Ссылка на профиль</a>'; } else { ?> <label for="user_email_for_added">Укажите адрес эл.почты для приглашения:</label><br/> <input type="text" id="user_email_for_added" name="user_email_for_add_cp" class="field_cp" value="<?php echo $email; ?> " size="30"> <label for="add_user_by_email_cp"><input type="checkbox" name="add_user_by_email_cp" id="add_user_by_email_cp" class="field_cp"> Подключить пользователя</label> <p> <small>Внимание! Эти данные указываются только если требуется предоставить персоне доступ к системе.</small> </p> <?php } }
function update_acl_if_updated_members($meta_ids, $object_id, $meta_key, $meta_value) { if ($meta_key != 'members-cp-posts-sql') { return; } // Проверяем нужный нам ключ $user_id = get_user_by_person($meta_value); if (empty($user_id)) { return; } //Если нет пользователя, то возврат $members = get_post_meta($object_id, 'members-cp-posts-sql'); $acl_users_s = get_post_meta($object_id, 'acl_users_s'); //Если персона еще в участниках, то добавить ACL, иначе - удалить if (in_array($meta_value, $members)) { if (!in_array($user_id, $acl_users_s)) { add_post_meta($object_id, 'acl_users_s', $user_id); } // если пользователя нет в списке, то добавить } else { if (in_array($user_id, $acl_users_s)) { delete_post_meta($object_id, 'acl_users_s', $user_id); } // если пользовател в списке, то удалить } return; }
function add_users_list_to_comment_for_notice($comment_id, $comment) { //get post ID and $post $post_id = $comment->comment_post_ID; $r = get_post($post_id); //it is cases? if ($r->post_type != 'cases') { return; } if ($comment->comment_type == 'visited') { return; } //add tag for plan email add_comment_meta($comment_id, 'email_notify', 0, true); //get members for cases $members = get_post_meta($post_id, 'members-cp-posts-sql'); //$message = $post_id . '<пост, участник: ' . print_r($members, true); //error_log($message); //add user id to list for notification foreach ($members as $member) { $id_usr = get_user_by_person($member); //Если участник и автор комментария есть одно и то же, то не нужно добавлять в список уведомлений (зачем автору читать свой же коммент на почте?) if ($comment->user_id == $id_usr) { continue; } //Если у участника есть пользователь if ($id_usr > 0) { add_comment_meta($comment_id, 'notify_user', $id_usr); //error_log('comment: '. $comment_id . ', val: ' . $user); } } return; }
function add_notice_for_added_members($meta_id, $object_id, $meta_key, $meta_value) { if ($meta_key != 'members-cp-posts-sql') { return; } $comment_check = get_comments(array('post_id' => $object_id, 'post_type' => 'cases', 'type' => 'event_case_member_added', 'meta_key' => 'member_id', 'meta_value' => $meta_value)); //if (! empty($comment_check)) return; $user_ID = get_current_user_id(); $comment_id = wp_insert_comment(array('comment_post_ID' => $object_id, 'comment_author' => 'CasePress', 'comment_content' => 'Добавлен участник - ' . get_the_title($meta_value), 'comment_type' => 'event_case_member_added', 'user_ID' => $user_ID, 'comment_approved' => true)); //exit(var_dump($comment_id)); //Добавляем ИД участника в мету add_comment_meta($comment_id, 'member_id', $meta_value, true); //Если у персоны есть пользователь, то добавить в план уведомлений $user_id_member = get_user_by_person($meta_value); if ($user_id_member > 0) { add_comment_meta($comment_id, 'email_notify', 0, true); add_comment_meta($comment_id, 'notify_user', $user_id_member, true); } return; }