Я всегда стараюсь обходится по-минимуму плагинов при создании сайтов. Но есть три плагина, которые постоянно использую, все они упрощают мне работу и дают клиенту простоту использования сайта. И лидером среди них является Advanced Custom Fields или просто ACF. Это реально монстр, который позволяет создать на базе WP сайт, практически любой сложности. Он упрощает процесс создания сайта прогеру под конкретные цели, а пользователю дает возможность легко управлять всем контентом сайта через админку.
Так вот, в одном из последних проектов создавали личный кабинет клиентов СТО (станции технического обслуживания). Были созданы кастомные типы записей CARS, т.е. автомобили. Где каждое авто должно было привязываться к конкретному клиенты. Ну и самое главное, что относится к текущему посту, клиент мог сам сам создавать или редактировать ряд данных своего авто (название, VIN код, год выпуска и фото), т.е. клиент на фронтеде сайта, должен был иметь возможность редактировать эти данные. Сами данные создавались на основе произвольных полей с использованием ACF. И вот как это выглядит с фронтеда
Ну и возник вопрос, как это реализовать с минимальными усилиями? Можно создать свои формы и обработчики к ним… но это время.
И тут, впервые за 2 года использования ACF, обратил внимание на на функцию acf_form()
Блин, так это же клондайк для создания сайтов с личными кабинетами пользователей.
Достаточно в том месте, где хотим вывести форму для пользователя, вставить следующий код
$options = array( 'id' => 'acf-form', // уникальный идентификатор формы 'post_id' => $car->ID, // ID записи которую хотим редактировать 'post_title' => true, // вывести загловок записи в форме 'fields' => array('car_year', 'car_vin_code', 'car_images'), // идентификаторы произвольных полей, которые нужно вывести в форме 'uploader' => 'basic', 'form_attributes' => array( 'enctype' => 'multipart/form-data', // атрибут для формы, если в форме передаем изображения ), 'submit_value' => 'Обновить' ); acf_form( $options );
Собственно этот код и вывел ту форму что на скрине, для редактирования записи типа cars с ID равным $car->ID.
На этом все… Если есть вопросы, пишите в комментариях — отвечу ))
Легкого кодинга!
Добрый день! Подскажите пожалуйста, в чем причина не выходит прочитать новые добавленые посты!?, при клике по ссылки всплывет сообщение в котором ошибка «401» 🙁 уже как целый день эта проблема…
С ума сойти! Это именно то, что мне нужно) А как вы привязали ID машины к конкретному пользователю? Ведь у каждого пользователя будет своя машина со своим ID. Где-то в админке в настройках пользователя есть соответствующее дополнительное поле с выбором машины?