🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ صالح عطاری
اطلاعات ذخیره نمی‌شوند!!!
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۷ مرداد ۱۴۰۰

باسلام و احترام

 

من میخ واهم یک افزونه که کاربر در سمت تنظیمات آن رنگی را انتخاب می‌کند و اطلاعات را ذخیره می‌کند طراحی کنم.

هنگامی که از اینپوت color استفاده می‌کنم و مراحل آموزش را کامل انجام می‌دهم و روی دکمه ذخیره سازی تغییرات می‌زنم اطلاعات ریست می‌شود!!!!!!!

اما وقتی var_dump می‌گیرم می‌بینم اطلاعات ذخیره شده اما با ریلود کردن صفحه اطلاعات می‌پره

من اینو چجوری درستش کنم؟؟؟

 

اینا کدامن:

(فایل اصلی افزونه:)

<?php
/*
	Plugin Name: افزونه تستی
	Plugin URI: https://sarzamin-site.ir
	Description: افزونه ای بسیار مفید و کاربردی
	Requires at least: WP 4.0.0
	Tested up to: WP 4.8.2
	Author: صالح عطاری
	Author URI: mailto:salehattari1386@gmail.com
	Version: 1.0.0
*/
?>
<?php
define( 'SC_DIR', plugin_dir_path( __FILE__ ) );
define( 'SC_URL', plugin_dir_url( __FILE__ ) );
if(is_admin()){
    include SC_DIR ."admin.php";
}
?>

functions.php:

<?php
define('SCR_PATH' , get_template_directory() . DIRECTORY_SEPARATOR);
if(is_admin()){
    include SCR_PATH.'admin.php';
}

admin.php:

<?php
function scroll_color_setting() {
	add_menu_page(
		'رنگ اسکرول بار',
		'رنگ اسکرول بار',
		'manage_options',
		'scroll-color',
		'scroll_color_settings'
	);
}
function scroll_color_settings(){
	include "settings.php";
	$sc_options = get_option( 'sc_options');
	if ( isset( $_POST['scsavedata'] ) ) {
		$sc_options['sc_color'] = isset($_POST['sc_color']);
		update_option('sc_options' , $sc_options);
	};
}
add_action( 'admin_menu', 'scroll_color_setting' );

settings.php:

<div class="wrap">
    <h1>تنظیمات افزونه</h1>
<form method="post">
    <table class="form-table">
        <tr valign="top">
            <th scope="row">رنگ اسکرول بار</th>
            <td>
            <input type="color" name="sc_color" <?php echo $sc_options['sc_color'] ? 'checked':''; ?> />
            </td>
        </tr>
        <tr valign="top">
            <th scope="row"></th>
            <td>
            <input type="submit" class="button" name="scsavedata" value="ذخیره سازی"/>
            </td>
        </tr>
    </table>
</form>
</div>

 

لطفا راهنمایی کنید که مشکل از کجا است ، کلی آزمایش کردم و دیدم که مشکل از فایل settings.php است ، نکته مهم اینجا است که چگونه اطلاعات اینپوت color را کاری کنم که نپرند؟؟؟

سلام خدمت شما

به صورت زیر عمل کنید:


	$sc_options = get_option( 'sc_options');
	if ( isset( $_POST['scsavedata'] ) ) {
		$sc_options['sc_color'] = isset($_POST['sc_color']);
		update_option('sc_options' , $sc_options);
		include "settings.php";// مسیر این را هم چک کنید که به درستی فراخوانی شده باشد
	};

 

رضا ۲۸ مرداد ۱۴۰۰، ۱۶:۴۲