За последние 24 часа нас посетили 64125 программистов и 1741 робот. Сейчас ищут 895 программистов ...

Получение данных из настроек

Тема в разделе "PHP для новичков", создана пользователем Yankovitz, 7 мар 2017.

  1. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Добрый день. Сайт на Wordpress.
    Есть рабочий скрипт для отправки СМС:
    Код (Text):
    1. <?php
    2. function charset($str, $data_charset) {
    3.  
    4.     if ($data_charset != 'UTF-8'){$str = iconv($data_charset, 'UTF-8//IGNORE', $str);}
    5.  
    6.     return $str;
    7.  
    8. }
    9.  
    10. $config = array(
    11.     'charset' => 'UTF-8', //windows-1251 кодировка сайта
    12.     'api_id'  => 'ключ', //Ключ для внешних программ
    13.     'to'      => 'телефон получателя', //Получатель
    14.     'text'    => 'Ваш пароль: 1234' //Само сообщение в UTF-8
    15. );
    16.  
    17. $error = file_get_contents( "http://sms.ru/sms/send?api_id=".$config["api_id"]."&test=1&to=".$config["to"]."&text=".urlencode(charset($config["text"],$config["charset"])) );
    18.  
    19. if(preg_match("/100/i",$error)){
    20.  
    21.     echo 100;
    22.  
    23. }else{
    24.  
    25.     echo $error;
    26.  
    27. }
    28. ?>
    Однако, при попытке использования переменных, скрипт отказывается работать. Как делаю:
    Код (Text):
    1. <?php
    2. function charset($str, $data_charset) {
    3.  
    4.     if ($data_charset != 'UTF-8'){$str = iconv($data_charset, 'UTF-8//IGNORE', $str);}
    5.  
    6.     return $str;
    7.  
    8. }
    9.  
    10. $apiid = get_option('option-name1');
    11. $phone = get_option('option-name2');
    12.  
    13. $config = array(
    14.     'charset' => 'UTF-8', //windows-1251 кодировка сайта
    15.     'api_id'  => $apiid, //Ключ для внешних программ
    16.     'to'      => $phone, //Получатель
    17.     'text'    => 'Ваш пароль: 1234' //Само сообщение в UTF-8
    18. );
    19.  
    20. $error = file_get_contents( "http://sms.ru/sms/send?api_id=".$config["api_id"]."&test=1&to=".$config["to"]."&text=".urlencode(charset($config["text"],$config["charset"])) );
    21.  
    22. if(preg_match("/100/i",$error)){
    23.  
    24.     echo 100;
    25.  
    26. }else{
    27.  
    28.     echo $error;
    29.  
    30. }
    31. ?>
    При использовании переменных ругается, мол: Fatal error: Uncaught Error: Call to undefined function get_option() in на wordpress. Не пойму в чем дело. В той же папке лежит другой php файл и прекрасно работает с get_option и переменными :( Уже голову сломал.
     
  2. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    В общем, сам спросил сам решил. Если кому-то пригодится:
    перед функцией
    PHP:
    1. get_option()
    нужно переподключить файл вордпресса, делается это так (!для плагина для темы путь должен быть другим):
    PHP:
    1. require_once(dirname(__FILE__).'../../../../wp-config.php');
    Только непонятно совсем, почему появляется в принципе необходимость переподключения???? Есть у кого предположения?
     
    #2 Yankovitz, 7 мар 2017
    Последнее редактирование: 7 мар 2017