Домой Каталог: Дополнения WP-Recall Freelance NextGen Как создать запрет на взятие заказа на исполение?
40ответ(ов) в теме
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
1
10:25
Версия WP-Recall: 16.16.4
Версия дополнения: 1.2.5

Здравствуйте. Прошу помощи. Подскажите, пожалуйста, как сделать так, что если человек заполняет значение одного произвольного поля в своем профиле при регистрации определенным значением, например "Юзер", запретить ему быть исполнителем, что бы кнопки были неактивными или уведомление всплывало, что не имеет право брать заказы для исполнения?

Спасибо большое!

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

как то так:

add_filter('fng_request_form_args', 'my_edit_request_form', 10);
function my_edit_request_form($formArgs){
	global $user_ID;
	
	if(get_user_meta($user_ID, 'meta_key', 1) != 'значение')
		$formArgs['onclick'] = 'rcl_notice('Вам запрещено откликаться на заявки!', 'error', 10000);return false;';
	
	return $formArgs;
	
}

укажите свой meta_key для поля, его значение и текст уведомления

Редакции сообщения
17.12.2018 11:07Андрей CSПричина: не указано
0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
3
11:33

Добавляю код в файл Function.php и сайт ложится. Может быть кавычек каких не хватает?

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
4
11:39

может быть

$formArgs['onclick'] = 'rcl_notice("Вам запрещено откликаться на заявки!", "error", 10000);return false;';

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
5
11:51

Подскажите, как правильно написать if(get_user_meta($user_ID, 'meta_key', 1) != 'значение')

Если мета кей - Meta-key:status_46 значение - вася

Должно быть так?: if(get_user_meta($user_ID, 'status_46', 1) != 'вася') - в таком случае не работает

Спасибо

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

я не знаю по какому принципу вы собираетесь блокировать, я дал вам верный код, подстраивайте его под себя, меняйте условие на нужное себе, элементарные же вещи сравнить значение поля профиля текущего пользователя и поставить == или !=

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
7
12:07

Я имею ввиду ставить вместо 'meta_key' нужно 'status_46' или "Meta-key:status_46"

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

status_46

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
9
12:15

Спасибо большое, но не срабатывает, заявка уходит

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
10
12:16

Я же верно вставляю код в function.php темы?

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

надо смотреть по месту в консоли браузера, вешается onclick на кнопку или нет, если нет, значит не выполняется условие по которому он должен вешаться, а если вешается, то проверить корректность синтаксиса в html коде кнопки, я код не тестировал

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
12
13:12

Странно, срабатывает для всех, хотя установлено значение для поля, почему так?

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
13
16:45

Прошу помощи

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
14
18:42

показывайте что делали и рассказывайте что не так работает

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
15
06:14

Здравствуйте. Сделал так:

add_filter('fng_request_form_args', 'my_edit_request_form', 10);
function my_edit_request_form($formArgs){
	global $user_ID;
	
	if(get_user_meta($user_ID, 'status_46', 1) != 'вася')
		$formArgs['onclick'] = 'rcl_notice("Вам запрещено откликаться на заявки!", "error", 10000);return false;';
	
	return $formArgs;
	
}

Вставил все это дело в файл function.php темы

Теперь уведомление для всех показывается, не смотря на то, что указан мета кей поля и его значение

Редакции сообщения
18.12.2018 06:15webmastergoodПричина: не указано
18.12.2018 12:59Андрей CSПричина: не указано
18.12.2018 13:00Андрей CSПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 3 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
16
10:08

== 'вася') а так если?

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
17
13:01

webmastergood сказал(а)
уведомление для всех показывается

значит условие не выполняется

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
18
08:36

Здравствуйте. Не срабатывает c 2-мя ==

Так же срабатывает для всех

Помогите, пожалуйста

Редакции сообщения
19.12.2018 08:36webmastergoodПричина: не указано
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
19
10:25

единственная причина по которой уведомление показывается всем - не выполняется установленное условие, а это значит что
get_user_meta($user_ID, 'status_46', 1) не равно 'вася'
проверяйте что находится в get_user_meta($user_ID, 'status_46', 1)
больше тут нечем помочь

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
20
15:58

Здравствуйте. Как не равно, если поле создано и в профиле есть "Вася", можно еще объяснить что означает 1? Может быть на самой странице, где опубликовано задание они не передаются? Если не передаются, то как принудительно прописать? Помогите!

Редакции сообщения
20.12.2018 16:05webmastergoodПричина: не указано
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
21
16:23

Может вам перестать копаться в коде и найти более подкованного человека для решения ваших задач?
Проверить содержимое произвольного поля по условию - элементарная задача, проблема в том, что это можете сделать только вы, код вам дан верный, далее помочь мы можем только мысленно.
И как бы 'вася' и 'Вася' немного разные строки, если у вас в коде написано 'вася', а поле профиля 'Вася', то условие никогда не выполниться.

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
22
17:02

Андрей, дело в том, что на странице с заданием нет этого значения, а в профиле есть. Значит оно не передается на страницу с заданием. Подскажите, как передать тогда?

0
Вова (Otshelnik-Fm)
не в сети 3 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
23
17:23

функция get_user_meta работает везде. Главное чтобы вы в нее передавали требуемые ей для работы аргументы.

Если у вас не определена ВП переменная $user_ID - а она глобальная - так определите ее дописав global
Это базовые вещи в вордпресс, да и в php

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
24
17:50

Я прошу дать ответ, почему на странице с заданием нету значения этого поля. И в каком файле мне прописать. Путь, пожалуйста

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
25
17:51

Где нужно прописать передачу этого поля "status_46"?

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
26
17:53

Я что то совсем перестал вас понимать.
Сформулируйте четко свой вопрос еще раз и постарайтесь сделать это как можно более полно.

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
27
17:59

Смотрите. Создано поле для выбора статуса. В нашем случае это "вася". Указывается оно в обязательном порядке при регистрации и успешно отображается в личном кабинете.

Прописывая данный код, который вы мне дали, он НЕ подхватывает со страницы с одиночным заданием значение произвольного поля "вася", так как запрещает брать для всех пользователей, а не только для васи. Следовательно, оно не передается. Вопрос: Как мне ее передать на страницу с заданием, что бы код его подхватывал? Ведь он для всех сейчас запрещает брать задание к выполнению.

0
Вова (Otshelnik-Fm)
не в сети 3 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
28
18:15

webmastergood сказал(а)
он НЕ подхватывает со страницы с одиночным заданием значение произвольного поля "вася"

у вас и там и там "вася"?

Произвольное поле в профиле - это не одно и тоже что произвольное поле в публикации.
В публикации метаполе получается стандартной ВП функцией get_post_meta

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
29
18:16

Все есть, и статус заявки и цена и тд., а васи нет и поля этого нет

0
webmastergood
не в сети 3 месяца
На сайте с 28.11.2018
Участник
Тем 25
Сообщения 104
30
18:17

Вот и вопрос в каком файле прописать передачу этого мета кея? и как

0
Вы не имеете права на публикацию сообщений в этой теме