@schukowez

Не подтягиваются данные для плагина (самопис). В чем ошибка по коду?

Здравствуйте.
Есть самописный плагин для WP. Суть - в админ-панели сайта вводим данные в полях (номер телефона). Этот номер должен отображаться в кнопке (которая выводится на всех страницах сайта). При изменении номера - он соответственно должен измениться и в кнопке.
Сам код:
<?php
if ( !function_exists( 'add_action' ) ) {
	echo 'Hi there!  I\'m just a plugin, not much I can do when called directly.';
	exit;
}

register_activation_hook( __FILE__, array( 'Phone FOX', 'plugin_activation' ) );
register_deactivation_hook( __FILE__, array( 'Phone FOX', 'plugin_deactivation' ) );

function phone_fox_display(){ 
	
	
    $options["number1"] = get_option("number1_on_button");  
    $options["number2"] = get_option("number2_on_button");   
	
	echo
	'<div style="
		position: fixed;
		bottom: 10px;
		right: 25px;
		background-color: #273595;
		z-index: 999;
		border-radius: 30px;
		animation: pulse 1s infinite;">
	
							<a style="display: flex;
								align-items: center;
								justify-content: center;
								color: #f4f030;
								font-size: 18px;
								font-weight: 800;
								width: 220px;
								height: 50px;" 
							href="tel:'options[number1]'">
							
								<span style="margin-left: 5px;">'options[number2]'</span>
							</a>
						</div>';
}

function phone_fox_settings()  
{  
    // this is where we'll display our admin options  
    if ($_POST["action"] == "update")  
    {  
		$_POST["write_number1"] != "" ? update_option("number1_on_button", "write_number1") : update_option("number1_on_button", "");  
        $_POST["write_number2"] != "" ? update_option("number2_on_button", "write_number2") : update_option("number2_on_button", "");

        $_POST["write_number1"] != "" ? update_option("number1_on_button", "write_number1") : update_option("number1_on_button", "");  
        $_POST["write_number2"] != "" ? update_option("number2_on_button", "write_number2") : update_option("number2_on_button", "");  
        $message = '<div id="message" class="updated fade"><p><strong>Options Saved</strong></p></div>';  
    }  
	   
    $options["number1"] = get_option("number1_on_button");  
    $options["number2"] = get_option("number2_on_button");  
       
    echo '  
    <div class="wrap">  
        '.$message.' 

        <h2>Phone FOX Settings</h2>  
           
        <form method="post" action="">   
           
        <h3>Write a phone number for the button</h3>  
        <input name="write_number1" type="text" id="write_number1" '.$options['number1'].' /> Format -> +375290000000<br />  
        <input name="write_number2" type="text" id="write_number2" '.$options['number2'].' /> Format -> +375(29)000-00-00<br />  
        <br />  
        <input type="submit" class="button-primary" value="Save Changes" />  
        </form>  
           
    </div>';  
}  

function phone_fox_admin_menu()  
{  
    // this is where we add our plugin to the admin menu  
    add_options_page('Phone FOX', 'Phone FOX', 9, basename(__FILE__), 'phone_fox_settings');  
}

add_action( 'admin_menu', 'phone_fox_admin_menu' );

Если (в строках 34 и 36) вместо 'options[number1]' и 'options[number2]' подставить номер (например +95484543159 и +9548(454)3159) -> на сайте номер отображается в кнопке, все ок.
Но, при значениях 'options[number1]' и 'options[number2]' -> в кнопке изначально ничего не отображается (логично), но и после ввода данных через админ-панель также ничего не отображается и не обновляется.
Подскажите, пожалуйста, как можно решить данную проблему, что сделал не правильно.
Опыта практически нету, поэтому хочется разобраться.
Другие варианты реализации кнопки типа через шорткод и т.п. не рассматриваю т.к. хочется понять решение именно через плагин.
Заранее спасибо.
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы