افزونه وردپرسی زمان – سانی وب

درود به تمامی همراهان تیم سانی وب، امروز نیز با آموزش پلاگین نویسی دیگری در خدمت شما عزیزان هستیم، با ما همراه باشید تا قدم به قدم افزونه زمان و تاریخ را با استفاده از وب سرویس های سانی وب بنویسیم.

اطلاعات مربوط به افزونه

در قدم اول برای ساخت افزونه زمان سانی وب باید یک صفحه جدید برای نوشتن کد های PHP ایجاد کرد و در ابتدای کار اطلاعات مربوط به افزونه را مانند زیر به صورت کامنت وارد کرد.

<?php
/*
Plugin Name: وب سرویس زمان-سانی وب
Plugin URI:  https://api.sunnyweb.ir
Description:  نمایش اطلاعات زمانی از قبیل زمان های شمسی ، قمری ، میلادی 
Version:     1.1.0
Author:      تیم برنامه نویسی سانی وب
Author URI:  http://sunnyweb.ir
License:     GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/


جهت نمایش داده شدن گزینه افزونه ما در منوی مدیریت وبسایت وردپرسی، از اکشن زیر استفاده می کنیم.

در تابع SUN_TIME_API_MENU نیز اطلاعات مربوط به افزونه مانند نام آن، توضیحات، صفحه مدیریت و لوگوی آن را تعریف می کنیم.

تابع time_plugin_settings_page نیز طرح صفحه مدیریت افزونه را ارائه می دهد که در مراحل بعدی این تابع را می نویسیم.

عکس لوگو مدنظرمان را نیز در فولدری با نام images در کنار فایلمان قرار می دهیم.

//add menu 
add_action('admin_menu', 'SUN_TIME_API_MENU');

function SUN_TIME_API_MENU()
{
    //create new top-level menu
    add_menu_page('time', 'نمایش اطلاعات زمانی از قبیل زمان های شمسی ، قمری ، میلادی ', 'administrator',
     __FILE__, 'time_plugin_settings_page', plugins_url('/images/logo.png', __FILE__));
    //call register setting fann_get_cascade_activation_function
    add_action('admin_init', 'SUN_TIME_API');
}
//end add menu

در مرحله بعد ستون یا ستون های مورد نظرمان را برای اضافه شدن به پایگاه داده به صورت زیر تعریف می کنیم و پس از آن با تعریف متغیر ها آن ها را فراخوانی می کنیم.

//create cols in db
function SUN_TIME_API()
{
    register_setting('SUN_API_', 'api');
}
//end create cols in db

//select cols in db
$api_e = esc_attr(get_option('api'));
//end select cols in db

در مرحله بعد تابع SUN_TIME_API_RES را تعریف می کنیم.این تابع توکن وب سرویس را دریافت می کند و با استفاده از وب سرویس تقویم سانی وب اطلاعات روز جاری را استخراج و به صورت شمسی، میلادی و قمری نشان نمایش خواهد داد.

function SUN_TIME_API_RES($atts)
{
    global $api_e;
    $json = json_decode(file_get_contents('https://api.sunnyweb.ir/api/time/' . $api_e), true);
    $miladiYear = $json['gregorianYear'];
    $miladiMonth = $json['gregorianMonth'];
    $miladiDay = $json['gregorianDay'];
    $miladiDayName = $json['gregorianDayName'];
    $jalaliYear = $json['jalaliYear'];
    $jalaliMonth = $json['jalaliMonth'];
    $jalaliDay = $json['jalaliDay'];
    $jalaliDayName = $json['jalaliDayName'];
    $hjriYear = $json['hijriYear'];
    $hjriMonth = $json['hijriMonth'];
    $hjriDay = $json['hijriDay'];
    $hijriDayName = $json['hijriDayName'];
    $miladiMonthName = $json['gregorianMonthName'];
    $jalaliMonthName = $json['jalaliMonthName'];
    $hjriMonthName = $json['hijriMonthName'];

    echo '
    <div dir="rtl" class="container">
        <div style="margin-top:.5em; margin-bottom:.5em; text-align:center;" >
        <h5 style="color:red;">خورشیدی</h5>
        <p>
        ' . $jalaliDayName . '،' . $jalaliDay . ' ' . $jalaliMonthName . ' ' . $jalaliYear . '
        </p>
        <p>
        ' . $jalaliYear . '/' . $jalaliMonth . '/' . $jalaliDay . '
        </p>
        </div>

        <div style="margin-top:.5em; margin-bottom:.5em; text-align:center;" >
        <h5 style="color:red">میلادی</h5>
        <p dir="ltr">
        ' . $miladiDayName . ',' . $miladiDay . ' ' . $miladiMonthName . ',' . $miladiYear . '
        </p>
        <p>
        ' . $miladiYear . '/' . $miladiMonth . '/' . $miladiDay . '
        </p>
        </div>

        <div style="margin-top:.5em; margin-bottom:.5em; text-align:center;" >
        <h5 style="color:red">قمری</h5>
        <p>
        ' . $hijriDayName . '،' . $hjriDay . ' ' . $hjriMonthName . ' ' . $hjriYear . '
        </p>
        <p>
        ' . $hjriYear . '/' . $hjriMonth . '/' . $hjriDay . '
        </p>
        </div>
    </div>
    ';
}

با افزودن shortcode زیر، هرگاه شما در وب سایتتان کلگخ [SUN_TIME]  را یادداشت و منتشر نمائید تابع SUN_TIME_API_RES فراخوانی شده و اطلاعات روز جاری به صورت میلادی،شمسی و قمری نمایش داده خواهند شد.

//SHORT CODE
add_shortcode('SUN_TIME', 'SUN_TIME_API_RES');
//END SHORT CODE

تابع time_plugin_setting_page که در مرحله اول از آن استفاده کردیم نیز به شکل زیر می باشد. این تابع طرح بخش منو افزونه می باشد و راهنمایی و دستورالعمل های لازم برای استفاده کننده از این افزونه را نشان خواهد داد.

function time_plugin_settings_page()
{
?>
    <div class="wrap">
        <h1>نمایش اخبار ارز دیجیتال</h1>
        <p>برای تهیه توکن سانی وب می توانید به <a href="https://api.sunnyweb.ir" target="_blank">اینجا</a> مراجعه و اشراک خود را تهیه نمایید</p>
        <form method="post" action="options.php">
            <?php settings_fields('SUN_API_'); ?>
            <?php do_settings_sections('SUN_API_'); ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">توکن کلید وب سرویس</th>
                    <td><input type="text" name="api" style="width: 30%;" value="<?php echo esc_attr(get_option('api')); ?>" /></td>
                </tr>
            </table>
            <h2>راهنما</h2>
            <p> جهت نمایش جدول از شورت کد [SUN_TIME] استفاده نمایید</p>
            <?php submit_button(); ?>
        </form>
    </div>
<?php } ?>
}

نوشتن این افزونه به پایان رسید و شما می توانید با ذخیره کردن و فشرده کردن پوشه ای که این فایل و فولدر images در آن قرار دارد به صورت zip و نصب آن در وبسایت وردپرسی خود از آن استفاده نمائید.

نصب افزونه زمان سانی وب

در وبسایت خود در بخش افزونه ها در قسمت افزودن فایل فشرده شده افزونه خود را بارگذاری کنید.

پس از نصب این افزونه عنوان آن در منوی سمت راست مدیریت وب سایت شما قرار می گیرد.

با رفتن به این قسمت میتوانید شناسه کاربری خود را وارد کنید تا با این افزونه با استفاده از وب سرویس های سانی وب اطلاعات مدنظرتان را استخراج نماید.

در فیلد بالا توکن کاربری خود را وارد نمائید.

اگر توکن کاربری ندارید با ثبت نام در سامانه سانی وب میتوانید توکن کاربری و همچنین ۵۰ عدد توکن درخواست رایگان دریافت نمائید.

سپس با کلیک کردن بر روی دکمه ذخیره تغییرات میتوانید تنظیمات وارد شده را ثبت نمائید.

حال اگر در نوشته های خود کلمه [SUN_TIME] را به کار ببرید، هنگام انتشار نوشته اطلاعات روز به صورت شمسی ، میلادی و قمری نمایش داده خواهد شد.

لازم به ذکر است که حتما باید افزونه ویرایشگر کلاسیک در وبسایت شما نصب شده باشد زیرا در حالت بلوکی نوشته ها به محض نوشتن اجرا می شوند و به دلیل وجود json اجازه انتشار نمی یابند.

پس از انتشار اطلاعات روز جاری به صورت زیر نمایش داده خواهند شد.

شما میتوانید با تغییر دادن تابع SUN_TIME_API_RES خروجی را به شکل دلخواه خود تغییر دهید.

دانلود افزونه از گیت هاب

برای دانلود افزونه بر روی این لینک کلیک نمائید.