jim-cmd

не работает вывод содержимого мета полей – WordPress

Доброго всем дня,
столкнулся с такой проблемой:
создал meta_box и два мета поля.
В админке все отображается и если заполнять, то выводится в запись. Т е работает как надо.
Таким же образом вывел мета поля на кастомную страницу добавления записи – для пользователя.
И вот с кастомной страницы, когда заполняю метаполя – они не отображаются (не передаются в базу).

Тема построена следующим образом: записи условно разделены на 3 типа. Таким образом в админке отображаются стандартные записи, записи с post_type=task и post_type=service.

вот так создаю метаполя в functions.php
//создаем оласть для дополнительных полей
add_action(‘add_meta_boxes’, ‘more_fields_meta_box’);
function more_fields_meta_box() {
$morefields = array(‘service’, ‘task’);
foreach($morefields as $morefield){
add_meta_box(‘more_fields_meta_box’, ‘Дополнительные поля для заполнения:’, ‘more_fields_callback’, $screen);
}
}
//Выводим поля для заполнения в эту область
function more_fields_callback($post){
?>
<ul id="post-new5">
<li>
<h2><?php echo __(‘Введите место, например: ТРЦ АРЕНА. ‘); ?>:</h2>
<p><input type="text" size="20" name="place_field" class="do_input" value="<?php echo get_post_meta($post->ID, ‘place_field’, true); ?>" /></p>
</li>
<li>
<h2><?php echo __(‘Введите размер скидки:’); ?>:</h2>
<p><input type="text" size="20" name="Discnum_field" class="do_input" value="<?php echo get_post_meta($post->ID, ‘Discnum_field’, true); ?>" /></p>
</li>
</ul>
<?php
}
//Сохраняем введенные данные а так же объявляем переменные которые передают значения полей.

add_action(‘save_post’, ‘more_fields_save_box_data’);
function more_fields_save_box_data($post_id){
if(defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) return;

$morefields = array(‘service’, ‘task’);
if(isset($_POST[‘post_type’]) && in_array($_POST[‘post_type’], $morefields)){
if(!current_user_can(‘edit_page’, $post_id)) return;
}else{
if(!current_user_can(‘edit_post’, $post_id)) return;
}

$fields = array(‘place_field’ , ‘Discnum_field’);
foreach($fields as $field){
$data = sanitize_text_field($_POST[$field]);
update_post_meta($post_id, $field, $data);
}
}

вот так вывожу их в записи
<?php
$placefield = get_post_meta(get_the_ID(),’place_field’,true);
printf ($placefield);
$Discnumfield = get_post_meta(get_the_ID(),’Discnum_field’,true);
printf ($Discnumfield);
?>

Пробую выводить поля на кастомную страницу создания записи – мета поля не передаются – точнее их значение..

Куда копать? что проверить?

Личные кабинеты для разных ролей пользователей

Добрый день,
возможно кто то сталкивался со следующей обстановкой и подскажет в какую сторону двигаться и как лучше думать, а именно:

на сайте реализована своя регистрация, форма входа и личный кабинет в папке с темой. Соответственно при регистрации у всех пользователей личный кабинет одинаковый. Я хочу реализовать разные личные кабинеты для разных ролей пользователей, соответственно и функционал разделить. Делить пользователей собираюсь не по названию ролей, а по user_level.
Для начала хочу сделать 2 личных кабинета, соостветственно необходимо сделать выбор роли при регистрации, но для начала хочу хоть, чтобы переключался в другой личный кабинет пользователь при смене роли существующего пользователя админом.

вот такая конструкция при Логине:


//login and default action
            case 'login' : 
            default:
              //check credentials - 99% of this is identical to the normal wordpress login sequence as of 2.0.4
              //Any differences will be noted with end of line comments. 
                $user_login = '';
                $user_pass = '';
                $using_cookie = false;
                /**
                 * this is what the code was
                 * if ( !isset( $_REQUEST['redirect_to'] ) )
                 *     $redirect_to = 'wp-admin/';
                 * else
                 *     $redirect_to = $_REQUEST['redirect_to'];
                 */
                 if ( !empty( $_GET['redirect_to'] ) ) {
                    $redirect_to = get_permalink(get_option('TaskerDev_my_account_page_id'));
                 } else {
                    $redirect_to = $_GET['redirect_to'];
                 }
                 
                 if(empty($redirect_to)) $redirect_to = get_permalink(get_option('TaskerDev_my_account_page_id'));

Редирект на TaskerDev_my_account_page_id я не нашел в теме, следовательно значение берется из базы.
Подскажите как и где мне добавить еще одно значение в базу, чтобы я мог по условию user_level=0 сделать редирект на другое значение?
Так же буду благодарен, если подскажете как сделать выбор опять таки user _level при регистрации

Anonymous
Отправить
Ответ на: