Поддержка Проблемы и решения Вызов по номеру телефона (tel:/callto:)

  • Всем привет! 🙂
    В шаблоне (WordPress движок) в теме есть поле «Телефон». Туда прописываю: <a href="номер">текст</a>, всё работает, открывается запрос через что открывать эту ссылку. Проверяю через мобильный телефон — при нажатии просто обновляется окно.
    Как можно решить эту проблему? Есть ли какой-то тег который универсально будет работать как в моб.версии, так и на ПК? Или как можно ещё решить эту задачку?

    • Тема изменена 5 лет, 1 месяц назад пользователем Acme1994.
Просмотр 13 ответов — с 1 по 13 (всего 13)
  • на ПК вы как это себе представляете? после нажатия комп возьмет ваш телефон и начнет набирать номер?

    Как можно решить эту проблему?

    <a href="tel:12345678">Позвонить</a>

    после нажатия комп возьмет ваш телефон и начнет набирать номер?

    Вполне. Если стоит какое-нить ПО — от скайпов-вайберов до SIP-телефонов.

    До чего техника дошла

    на ПК вы как это себе представляете? после нажатия комп возьмет ваш телефон и начнет набирать номер?

    Хорошая фантазия. Это программистов и продвигает.
    Но я это представляю и реализовал так, что при клике открывается предупреждение и выбираешь программу: скайп/вайбер/ватсапп. Может благодаря моему вопросу вы что-то новое узнали — что ни есть плохо в нашем деле. 🙂

    А вот с моб.версией пока застрял. Сменил на <a href="tel:12345678">Позвонить</a>, в ПК версии так-же предупреждение, а в моб. версии при клики на номер обновляется страница.
    Может у меня только так? Посмотрите, у кого есть возможность, через моб.: carchek.ru

    • Ответ изменён 5 лет, 1 месяц назад пользователем Acme1994.
    • Ответ изменён 5 лет, 1 месяц назад пользователем Acme1994.
    • Ответ изменён 5 лет, 1 месяц назад пользователем Acme1994.

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

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Проверяю через мобильный телефон — при нажатии просто обновляется окно.

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

    
    <a class="w-img-h" href="https://carchek.ru/">
    	<img width="500" height="90" class="for_default" alt="Привезти бензин" src="https://carchek.ru/wp-content/uploads/2017/04/Без-имени-13.png">
    </a>
    

    Спасибо. Буду править.

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

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

    это не моя забота. Меня знакомый попросил только телефон поправить, мои замечания по всяким хреням и тоннам скриптов проигнорировал. 🙂

    Спасибо за наводку Sergey Biryukov.
    Просто картинка вставлена с номером телефона и ссылка на главную страницу. Жесть…

    Класс: <div class="w-img' . $classes . '">

    $classes = '';
    if ( isset( $design_options ) AND isset( $design_options['hide_for_sticky'] ) AND $design_options['hide_for_sticky'] ) {
    	$classes .= ' hide-for-sticky';
    }
    if ( ! empty( $img_transparent ) ) {
    	$classes .= ' with_transparent';
    }
    if ( isset( $id ) AND ! empty( $id ) ) {
    	$classes .= ' ush_' . str_replace( ':', '_', $id );
    }
    
    $output = '<div class="w-img' . $classes . '">';
    $link_atts = usof_get_link_atts( $link );
    if ( ! empty( $link_atts['href'] ) ) {
    	$output .= '<a class="w-img-h" href="' . esc_attr( $link_atts['href'] ) . '"';
    	if ( ! empty( $link_atts['target'] ) ) {
      $output .= ' target="' . esc_attr( $link_atts['target'] ) . '"';
    	}
    	$output .= '>';
    } else {
    	$output .= '<div class="w-img-h">';
    }
    foreach ( array( 'img', 'img_transparent' ) as $key ) {
    	$$key = preg_replace( '~\|full$~', '|large', $$key );
    	if ( empty( $$key ) OR ! ( $image = usof_get_image_src( $$key ) ) ) {
      continue;
    	}
    	$for = ( $key == 'img' ) ? 'default' : substr( $key, 4 );
    	$output .= '<img class="for_' . $for . '" src="' . esc_url( $image[0] ) . '"';
    	if ( ! empty( $image[1] ) AND ! empty( $image[2] ) ) {
      $output .= ' width="' . $image[1] . '" height="' . $image[2] . '"';
    	}
    	if ( $img_alt = usof_get_image_alt( $$key ) ) {
      $output .= ' alt="' . esc_attr( $img_alt ) . '"';
    	} else {
      $output .= ' alt=""';
    	}
    	$output .= ' />';
    }
    if ( ! empty( $link_atts['href'] ) ) {
    	$output .= '</a>';
    } else {
    	$output .= '</div>';
    }
    $output .= '</div>';
    
    echo $output;

    w-img-h — этот класс выводится. Куда копаться, чтобы изменить в моб.версии этот класс, к примеру, на тот что в оригинале. Либо просто «тупо» всё убрать и прописать HTML разметку tel:?
    В шаблоне нашёл, раздел что отвечает за шапку:

    echo '" itemscope="itemscope" itemtype="https://schema.org/WPHeader">';
    foreach ( array( 'top', 'middle', 'bottom' ) as $valign ) {
    	echo '<div class="l-subheader at_' . $valign;
    	if ( isset( $options[$valign . '_fullwidth'] ) AND $options[$valign . '_fullwidth'] ) {
      echo ' width_full';
    	}
    	echo '"><div class="l-subheader-h">';
    	foreach ( array( 'left', 'center', 'right' ) as $halign ) {
      echo '<div class="l-subheader-cell at_' . $halign . '">';
      if ( isset( $layout[$valign . '_' . $halign] ) ) {
      	us_output_header_elms( $layout, $data, $valign . '_' . $halign );
      }
      echo '</div>';
    	}
    	echo '</div></div>';
    }

    После нашёл файл header, где была прописана эта картинка:
    foreach ( array( 'tablets' => 'image:2', 'mobiles' => 'image:3' ) as $layout => $key )
    после чего в wpml-config.xml нашёл эту переменную image:3

    <key name="image:3">
          <key name="img"/>
          <key name="img_transparent"/>
          <key name="link"/>
        	</key>

    И теперь, как я понимаю, нужно прописать так:

    <key name="image:3">
          <key name="text"/>
          <key name="link"/>
                   </key>

    но как в эту переменную запихнуть нужное мне значение, а именно <a href="tel:123">текст</a>?

    но как в эту переменную запихнуть нужное мне значение,

    А что мешает просто убрать весь (ненужный) хлам и просто прописать html?

    Пробовал тут менять:

    $classes = '';
    if ( isset( $design_options ) AND isset( $design_options['hide_for_sticky'] ) AND $design_options['hide_for_sticky'] ) {
    	$classes .= ' hide-for-sticky';
    }
    if ( ! empty( $img_transparent ) ) {
    	$classes .= ' with_transparent';
    }
    if ( isset( $id ) AND ! empty( $id ) ) {
    	$classes .= ' ush_' . str_replace( ':', '_', $id );
    }
    
    $output = '<div class="w-img' . $classes . '">';
    $link_atts = usof_get_link_atts( $link );
    if ( ! empty( $link_atts['href'] ) ) { 
    	$output .= '<a class="w-img-h" href="' . esc_attr( $link_atts['href'] ) . '"';
    	if ( ! empty( $link_atts['target'] ) ) {
    		$output .= ' target="' . esc_attr( $link_atts['target'] ) . '"';
    	}
    	$output .= '>';
    } else {
    	$output .= '<div class="w-img-h">';
    }
    foreach ( array( 'img', 'img_transparent' ) as $key ) {
    	$$key = preg_replace( '~\|full$~', '|large', $$key );
    	if ( empty( $$key ) OR ! ( $image = usof_get_image_src( $$key ) ) ) {
    		continue;
    	}
    	$for = ( $key == 'img' ) ? 'default' : substr( $key, 4 );
    	$output .= '<img class="for_' . $for . '" src="' . esc_url( $image[0] ) . '"';
    	if ( ! empty( $image[1] ) AND ! empty( $image[2] ) ) {
    		$output .= ' width="' . $image[1] . '" height="' . $image[2] . '"';
    	}
    	if ( $img_alt = usof_get_image_alt( $$key ) ) {
    		$output .= ' alt="' . esc_attr( $img_alt ) . '"';
    	} else {
    		$output .= ' alt=""';
    	}
    	$output .= ' />';
    }
    if ( ! empty( $link_atts['href'] ) ) {
    	$output .= '</a>';
    } else {
    	$output .= '</div>';
    }
    $output .= '</div>';
    
    echo $output;

    Но как не сделаю, на выходе получается огромная картинка, которая была изначально и всё слетает. Все остальные image:1,image:2 .

    Поэтому и полез в xml разметку и может там можно прописать?

    Может можно отделить image:2 от image:3 в этом коде?

    if ( isset( $header_settings['data']['image:1'] ) ) {
    		foreach ( array( 'tablets' => 'image:2', 'mobiles' => 'image:3' ) as $layout => $key ) {
    			if ( isset( $header_settings['data'][$key] ) OR ! isset( $usof_options['logo_image_' . $layout] ) OR empty( $usof_options['logo_image_' . $layout] ) ) {
    				continue;
    			}
    			$header_settings['data'][$key] = array_merge(
    				$header_settings['data']['image:1'], array(
    				'img' => $usof_options['logo_image_' . $layout],
    				'img_transparent' => '',
    			)
    			);

    И просто вывести image:3 в отдельную переменную и через ‘echo’ вывести html разметку?

    Модератор Yuri

    (@yube)

    после чего в wpml-config.xml нашёл эту переменную image:3

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

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Вызов по номеру телефона (tel:/callto:)» закрыта для новых ответов.