Osclass osc_user_phone () не работает

В последнее время я использую эту функцию, чтобы скрыть последние цифры osc_user_phone () в Osclass 3.6.1

JQuery

<script>
$(document).ready(function(){
$("#showPhone").click(function () {
$("#showPhone").hide();
$("#hidePhone").show();
});

$("#hidePhone").click(function () {
$("#showPhone").show();
$("#hidePhone").hide();
});
});
</script>

HTML

<?php _e('user phone'); ?> :
<span>
<a href="#"  id="hidePhone" style="display: none;">
<?php echo osc_user_phone_mobile(); ?>
</a>
</span>
<span>
<a href="#"  id="showPhone">
<?php echo substr(osc_user_phone_mobile(),0,-4).'XXXX'; ?>
</a>
</span>

Здесь все в порядке. Если заполнить поле «Сотовый телефон» в профиле пользователя в порядке, номер телефона отобразится на странице элемента.
Если опубликовать новое объявление без учетной записи и завершить ввод данных с мобильного телефона, номер телефона не отображается на странице элемента.

от пункт-post.php, проблема здесь (я надеюсь)

<div class="control-group">
<label class="control-label" for="phoneMobile"><?php _e('Cell phone', 'infinity'); ?></label>
<div class="controls">
<?php UserForm::mobile_text(osc_user()); ?>
</div>
</div>

и из пользователя profile.php, вход мобильного телефона:

<div class="control-group">
<label class="control-label" for="phoneMobile"><?php _e('Cell phone', 'infinity'); ?></label>
<div class="controls">
<?php UserForm::mobile_text(osc_user()); ?>
</div>
</div>

тот же код, который пункт-post.php

Как работает поле ввода и когда пользователь размещает новое объявление, номер телефона отображается на странице товара?

1

Решение

В osclass 3.7.1 (тема bender) мне удалось поместить телефон зарегистрированного пользователя в item-post.php
Код:

<?php if(osc_is_web_user_logged_in()) { ?>
<?php if (!$edit) { ?>
<div class="control-group">
<label class="control-label" for="phoneLand"><?php _e('Phone', 'bender'); ?>*</label>
<div class="controls">
<?php UserForm::phone_land_text(osc_user()); ?>
<p style="font-size: 0.85em; color:red;">* empty => <u>it will miss from all the listings !</u></br>* filled => <u>it will show in all the listings !</u></p>
</div>
</div>
<?php } ?>
<?php if ($edit) { ?>
<div class="control-group">
<label class="control-label" for="phoneLand">The <?php _e('Phone', 'bender'); ?></label>
<div class="controls">
<p style="font-size: 0.85em;"> can be edited <a href="<?php echo osc_user_profile_url(); ?>" target="_blank">here</a>.</p>
</div>
</div>
<?php } ?>
<?php } ?>
0

Другие решения

При отправке страницы Osclass проверяет, публикует ли элемент зарегистрированный или незарегистрированный пользователь.

  1. Если он находит идентификатор пользователя, информация хранится в oc_t_user это имеет s_phone_land а также s_phone_mobile,
  2. Когда незарегистрированный пользователь публикует элемент, его информация сохраняется в oc_t_item таблица в базе данных. К сожалению, это только сохраняет s_contact_name а также s_contact_emailПоле не доступно для этой таблицы.

Затем поле ввода вашего телефона отправляется, но просто не учитывается контроллером. Вы можете увидеть процесс в controller/item.php а также ItemActions.php,

Вы можете посмотреть на prepareData() метод в ItemActions.phpвокруг строк с 1100 по 1110:

if( $userId != null ) {
$aItem['contactName']   = $data['s_name'];
$aItem['contactEmail']  = $data['s_email'];
Params::setParam('contactName', $data['s_name']);
Params::setParam('contactEmail', $data['s_email']);
} else {
$aItem['contactName']   = Params::getParam('contactName');
$aItem['contactEmail']  = Params::getParam('contactEmail');
}
$aItem['userId']        = $userId;
0

По вопросам рекламы [email protected]