Домой Каталог: Дополнения WP-Recall Public Recall Жестко накосячил - помогите!
22ответ(ов) в теме
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
1
17:47
Версия WP-Recall: 16.7.3
Версия дополнения: 4.0.0

Народ выручайте!!!

Сотворил косяк на живом сайте. Юзеры уже почту завалили гневными вопросами.

Что было: было 12 форм публикаций.

Что сделал: решил первую (дефолтную) форму публикаций сделать стандартной (без доп полей). Ранее там была форма одной из категорий (с произвольными полями). Перенес все данные из первой формы в 13-ю, а в первой удалил все доп поля.

Что стало: теперь абсолютно во всех записях (которые были добавлены с помощью форм WP-Recall) пропали все данные произвольных полей.

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
2
17:49

Дополнительно зарегистрировал свои произвольные поля для форм в файле функций.

//вывод собственных полей в форме публикации Recall
add_filter('rcl_default_public_form_fields','add_default_field_public_form',10,2);
function add_default_field_public_form($fields,$post_type){
    
    $fields[] = array(
        'type' => 'url',
        'slug' => 'wpcf-file_url_mirror',
        'title' => 'Запасная ссылка',
        'notice' => 'Вы можете указать запасную ссылку, на случай, если первая станет недоступна.'
    );
  
    $fields[] = array(
        'type' => 'text',
        'slug' => 'wpcf-game_version',
        'title' => 'Версия игры',
        'notice' => 'Укажите версию игры, на которой модификация была протестирована.'
    );
  
    $fields[] = array(
        'type' => 'text',
        'slug' => 'wpcf-mods_version',
        'title' => 'Версия модификации',
        'notice' => 'Укажите версию модификации.'
    );  
  
    $fields[] = array(
        'type' => 'text',
        'slug' => 'wpcf-mods_author',
        'title' => 'Автор(ы) модификации',
        'notice' => 'Укажите автора мода. Если авторов несколько - укажите их всех, через запятую.'
    );
  
    $fields[] = array(
        'type' => 'radio',
        'slug' => 'wpcf-mods_format',
        'title' => 'Формат файла',
	    'required' => true,
        'notice' => 'Укажите тип архива с модификацией.',
        'values' => array(
            'ZIP',
            'RAR',
            '7z',
		    'PKG',
		    'SCS'
        )
 
    );

    $fields[] = array(
        'type' => 'number',
        'slug' => 'wpcf-file_size',
        'title' => 'Размер файла',
	    'required' => true,
        'notice' => 'Укажите размер файла в МБ (только цифры).'
    );
  
    $fields[] = array(
        'type' => 'url',
        'slug' => 'wpcf-file_url',
        'title' => 'Ссылка на файл',
	    'required' => true,
        'notice' => 'Укажите ссылку для скачивания файлов с одного из разрешенных файлообменников.'
    );

    $fields[] = array(
        'type' => 'url',
        'slug' => 'wpcf-mods_video',
        'title' => 'Видео обзор мода',
        'notice' => 'Вы можете добавить видео-обзор модификации. Просто вставьте ссылку на YouTube ролик в это поле.'
    );  
    
    return $fields;

}

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
3
17:53

Но данные же должны быть в базе? Какие действия предпринять, чтобы все вернулось?

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

Все данные полей формы публикации хранятся в таблице wp_postmeta
Получается стандартной вп функцией

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

И на форуме можете поискать get_post_meta

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

А вот и id формы публикации в бд

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

тоже в таблице wp_postmeta

Думаю вам просто новое значение (13 - счастливое число)) ) вписать надо

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
6
18:18

Смотрите - вернул все как было. Переназначил опять первую форму. Сейчас если открываю любую запись для редактирования, то заголовок есть, описание есть, картинки есть, а доп поля пустые.

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
7
18:22

Ребята!!! Помогите! Готов заплатить. Только помогите вернуть все как было.

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
8
18:27

Я смотрю в базе: было поле mods_url, а в базе я не нахожу его

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

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

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

Вы 5 сообщение читали?

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

Kerncraft1 сказал(а)
Как я умудрился все данные произвольных полей грохнуть?

Если полей нет - то только бекап спасет ситуацию

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
11
18:30

Otshelnik-Fm сказал(а)
Вы 5 сообщение читали?

Да. Я уже 13-ю форму удалил.

Бекап 3-х дневной давности. Для меня это будет "Это фиаско братан".

Но как могли пропасть данные?

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

Kerncraft1 сказал(а)
Да. Я уже 13-ю форму удалил.

- ну так у вас этот ключ publicform-id есть? вот под него и меняйте ту форму что была на новый идентификатор

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

Глянул у себя в бд - если форма публикации имеет 1 id - то этот ключ не заводится. Значит вам на нужные id записей надо завести такой ключ с значением id новой формы

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
14
18:36

Otshelnik-Fm. Пожалуйста попробуйте помочь. Предоставлю все доступы и оплачу ваше время.

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

Kerncraft1 сказал(а)
Я смотрю в базе: было поле mods_url, а в базе я не нахожу его

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

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

Так вы определитесь - есть ли у вас в бд эти данные. Если нет - тут никто не помощник

Всеже самое верное - открыть базу постмета по id записи - и уже все поля у нее просматривать. Вы же знаете какая запись содержала эти поля?

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
16
18:58

Вот все, что я вижу в postmeta по ID записи -

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

Похоже хана данным. Но хоть убейте - я не понимаю как это могло произойти. 🙁

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
17
19:20

Пришлось откатываться бекапом. Хорошо, что нашел вчерашнюю копию базы. Однако, сегодня было сделано столько дел, что аж руки опускаются теперь.

Если кому не трудно - поставьте эксперимент на тестовом сайте. Попробуйте также переназначить формы. Что станет с значениями произвольных полей?

Я хоть убейте не понимаю, как они вообще с базы пропасть могли?

0
Андрей CS
не в сети 5 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
18
20:08

Если в форме публикации было удалено поле, то при пересохранении данных формы данные опубликованные через удаленное поле также удаляются, то же самое происходит с произвольными полями пользователя.
Это давняя система, которая работает в плагине уже с давних времен, предохраняет от забивания БД неиспользуемыми данными.
Наверное знать об этой особенности полезно, если взялись проводить манипуляции с формами произвольных полей. Не спорю, может быть это слишком жестоко, но вы первый у кого возникла такая проблема, ранее этот вопрос никогда не поднимался.
Тут выхода два: понять, принять и иметь ввиду в дальнейшем или внести свое предложение по работе этого функционала, постараемся рассмотреть.
А пока приношу извинения за доставленные неудобства.

2
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
19
20:26

Я в общем понял ваше разъяснение. Согласен, что наверное надо было задать вопрос на форуме.

А вот у меня еще тогда вопрос: вот удалил я поля в первой форме - удалились их данные. А если часть этих полей в других формах присутствует? Получается, что и от туда значения удаляются? Потому как у меня во всех записях (все 12 форм) пропали данные.

0
Андрей CS
не в сети 5 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
20
20:44

Kerncraft1 сказал(а)
А если часть этих полей в других формах присутствует?

Дельное замечание, получается - да. Как я уже писал, этот функционал присутствует уже очень давно, а в те времена плагин не давал возможности создавать произвольные поля с определенным meta_key, потому предполагалось, что во всех формах поля будут всегда разные, сейчас конечно это не актуально. Видимо надо менять подход к этому вопросу.

0
Kerncraft1
не в сети 1 год
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
21
20:55

Вообще, как мне кажется было бы хорошо сделать так, чтобы при удалении поля запрашивалось подтверждение с уведомлением, что удаление полей приведет к удалению данных этих полей.

1
Андрей CS
не в сети 5 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
22
21:07

согласен, продумаю этот функционал

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