Plugin Directory

Changeset 3257047


Ignore:
Timestamp:
03/17/2025 10:31:49 AM (12 days ago)
Author:
wsxplugindev
Message:

Tagging Version 3.5

Location:
admin-dashboard-rss-feed/trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • admin-dashboard-rss-feed/trunk/admin-rss-feed.php

    r3234006 r3257047  
    11<?php
    2 
    3 /**
    4 * Plugin Name: Admin Dashboard RSS Feed
    5 * Description: This plugin will display company news in WordPress Admin Dashboard. It uses RSS feed URL as input and display the news synopsis in the Admin Dashboard.
    6 * Plugin URI: https://www.webstix.com
    7 * Author: Webstix
    8 * Version:     3.4
    9 * Text Domain: admin-dashboard-rss-feed
    10 * Author:      Webstix, Inc.
    11 * Author URI:  https://www.webstix.com/wordpress-plugin-development
    12 * Domain Path: /languages
    13 * License: GPL-2.0+
    14 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     2/*
     3Plugin Name: Admin Dashboard RSS Feed
     4Description: This plugin will display company news in WordPress Admin Dashboard. It uses RSS feed URL as input and display the news synopsis in the Admin Dashboard.
     5Plugin URI: https://www.webstix.com
     6Author: Webstix
     7Version:     3.5
     8Text Domain: admin-dashboard-rss-feed
     9Author:      Webstix, Inc.
     10Author URI:  https://www.webstix.com/wordpress-plugin-development
     11Domain Path: /languages
     12License: GPL-2.0+
     13License URI: http://www.gnu.org/licenses/gpl-2.0.txt
    1514*/
    1615// Abort, if the plugin file is accessed from outside.
     
    4342        <?php
    4443        echo '<p>';
    45         echo __('Thank you for using the <strong>Admin Rss Feed</strong> plugin! Go to Plugin ', 'admin-dashboard-rss-feed');
    46         echo '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=admin-dashboard-rss-feed%2Fadmin-rss-feed.php')) . '">' . __('Settings Page', 'admin-dashboard-rss-feed') . '</a>';
     44        esc_html_e('Thank you for using the <strong>Admin Rss Feed</strong> plugin! Go to Plugin ', 'admin-dashboard-rss-feed');
     45        echo '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=wsx-rss-feed-settings')) . '">' . esc_html_e('Settings Page', 'admin-dashboard-rss-feed') . '</a>';
    4746        echo '</p>';
    4847?>
     
    6261function wsx_rss_feed_plugin_settings_link($wsx_rss_feed_link)
    6362{
    64     $wsx_rss_feed_link[] = '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=admin-dashboard-rss-feed%2Fadmin-rss-feed.php')) . '">' . __('Settings', 'admin-dashboard-rss-feed') . '</a>';
     63    $wsx_rss_feed_link[] = '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=wsx-rss-feed-settings')) . '">' . __('Settings', 'admin-dashboard-rss-feed') . '</a>';
    6564    return $wsx_rss_feed_link;
    6665}
     
    7069{
    7170    // create new top-level menu
    72     add_options_page('Admin Dashboard RSS Feed Plugin Settings', 'Admin Dashboard RSS Feed', 'manage_options', __FILE__, 'wsx_rss_feed_admin_settings_page');
     71    add_options_page('Admin Dashboard RSS Feed Plugin Settings', 'Admin Dashboard RSS Feed', 'manage_options', 'wsx-rss-feed-settings', 'wsx_rss_feed_admin_settings_page');
    7372    // call register settings function
    7473    add_action('admin_init', 'wsx_rss_feed_admin_settings');
     
    7675function wsx_rss_feed_styles()
    7776{
    78     wp_register_style('wsx-rss-styles', plugin_dir_url(__FILE__) . 'admin/css/style.css');
     77    wp_register_style('wsx-rss-styles', plugin_dir_url(__FILE__) . 'admin/css/style.css', array(),  '3.5');
    7978    wp_enqueue_style('wsx-rss-styles');
     79
     80    // Enqueue WordPress media uploader
     81    wp_enqueue_media();
     82
     83    // Load script only on the desired admin page
     84    wp_enqueue_script(
     85        'custom-admin-js',
     86        plugin_dir_url(__FILE__) . 'admin/js/admin.js', // Adjust path if using a plugin
     87        array('jquery'), // jQuery dependency
     88        '3.5',
     89        true // Load in footer
     90    );
     91
     92    // Pass PHP variables to JavaScript
     93    wp_localize_script('custom-admin-js', 'rssFeedVars', array(
     94        'attachment_id' => get_option('wsx_rss_feed_image_attachment_id', 0)
     95    ));
     96
     97   
    8098}
    8199add_action('admin_enqueue_scripts', 'wsx_rss_feed_styles');
    82100function wsx_rss_feed_admin_settings()
    83101{
    84     // register our settings
    85     // Save attachment ID
    86     if (isset($_POST['image_attachment_id'])):
    87         update_option('wsx_rss_feed_image_attachment_id', absint($_POST['image_attachment_id']));
    88     endif;
    89     if(!empty($_GET['page'])){
    90     if($_GET['page'] == "admin-dashboard-rss-feed/admin-rss-feed.php") {
    91         wp_enqueue_media();
    92     }
    93     }
    94 
    95     // Get the Company Logo Title
    96     register_setting('wsx-rss-feed-settings-group', 'wsx_logo_title');
    97     // Get the Company Logo Target Link
    98     register_setting('wsx-rss-feed-settings-group', 'wsx_logo_target_link');
    99     // Feed URL
    100     register_setting('wsx-rss-feed-settings-group', 'wsx_rss_feed_url');
    101     // Feed Count
    102     register_setting('wsx-rss-feed-settings-group', 'wsx_rss_feed_count');
    103 }
     102    // Ensure request method is set before using it
     103    if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
     104        if (!isset($_POST['wsx_rss_feed_nonce']) ||
     105            !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['wsx_rss_feed_nonce'])), 'wsx_rss_feed_nonce_action')) {
     106            wp_die(esc_html__('Security check failed', 'admin-dashboard-rss-feed'));
     107        }
     108
     109        // Save attachment ID
     110        if (isset($_POST['image_attachment_id'])) {
     111            update_option('wsx_rss_feed_image_attachment_id', absint($_POST['image_attachment_id']));
     112        }
     113    }
     114
     115    if (!empty($_GET['page']) && $_GET['page'] == "admin-dashboard-rss-feed/admin-rss-feed.php") {
     116        wp_enqueue_media();
     117    }
     118
     119    // Register settings
     120    register_setting('wsx-rss-feed-settings-group', 'wsx_logo_title', 'sanitize_text_field');
     121    register_setting('wsx-rss-feed-settings-group', 'wsx_logo_target_link', 'esc_url_raw');
     122    register_setting('wsx-rss-feed-settings-group', 'wsx_rss_feed_url', 'esc_url_raw');
     123    register_setting('wsx-rss-feed-settings-group', 'wsx_rss_feed_count', 'absint');
     124}
     125
     126//add_action('admin_init', 'wsx_rss_feed_admin_settings');
     127
    104128
    105129function wsx_rss_feed_admin_settings_page() { ?>
     
    108132
    109133<form method="post" action="options.php">
    110 <?php wp_nonce_field('nonce-to-check'); ?>
    111     <?php
    112     settings_fields('wsx-rss-feed-settings-group'); ?>
    113     <?php
    114     do_settings_sections('wsx-rss-feed-settings-group');
    115 ?>
     134
     135    <?php
     136        settings_fields('wsx-rss-feed-settings-group');
     137        do_settings_sections('wsx-rss-feed-settings-group');
     138        wp_nonce_field('wsx_rss_feed_nonce_action', 'wsx_rss_feed_nonce');
     139    ?>
    116140    <table class="form-table">
    117141
     
    126150            <td>
    127151            <div class='image-preview-wrapper'>
    128             <img id='image-preview' src="<?php
    129     echo wp_get_attachment_url(get_option('wsx_rss_feed_image_attachment_id')); ?>" height='100'>
     152           
     153            <?php echo wp_get_attachment_image(get_option('wsx_rss_feed_image_attachment_id'), 'thumbnail', false, array('id' => 'image-preview', 'class' =>'clsImagePreview', 'height' => '100')); ?>
     154
    130155        </div>
    131         <input id="upload_image_button" type="button" class="button" value="<?php
    132     _e('Upload image'); ?>" />
    133 
    134     <input id="delete_image_button" type="button" class="button" value="<?php
    135     _e('Delete image'); ?>" /><small class="wsx-small">(We suggest 64 pixels wide x 64 pixels high)</small>
    136         <input type='hidden' name='image_attachment_id' id='image_attachment_id' value='<?php
    137     echo get_option('wsx_rss_feed_image_attachment_id'); ?>'></td>
     156        <input id="upload_image_button" type="button" class="button" value="<?php esc_attr_e('Upload image', 'admin-dashboard-rss-feed'); ?>" />
     157
     158    <input id="delete_image_button" type="button" class="button" value="<?php esc_attr_e('Delete image', 'admin-dashboard-rss-feed'); ?>" /><small class="wsx-small">(We suggest 64 pixels wide x 64 pixels high)</small>
     159        <input type='hidden' name='image_attachment_id' id='image_attachment_id' value='<?php echo esc_attr(get_option('wsx_rss_feed_image_attachment_id')); ?>'>
     160
     161    </td>
    138162        </tr>
    139163
     
    153177            <th scope="row">Number of items to display: <small style="font-weight: normal;">(You can show between 1 to 10)</small></th>
    154178            <td><input type="number" name="wsx_rss_feed_count" value="<?php
    155     echo esc_attr(get_option('wsx_rss_feed_count')); ?>" required /></td>
     179    echo esc_attr(get_option('wsx_rss_feed_count')); ?>" required  max="10" /></td>
    156180        </tr>
    157181    </table>
     
    167191    global $wp_meta_boxes;
    168192    $wsx_company_name = esc_attr(get_option('wsx_logo_title'));
    169     wp_add_dashboard_widget('widget_wsx_rss_feed', __($wsx_company_name . ' News', 'wsx_rss_feeds') , 'wsx_rss_feed_create_box');
     193    // Translators: %s will be replaced with the company name.
     194    wp_add_dashboard_widget('widget_wsx_rss_feed', sprintf(esc_html__('%s News', 'admin-dashboard-rss-feed'), $wsx_company_name),
     195        'wsx_rss_feed_create_box'
     196    );
     197   
    170198}
    171199add_action('wp_dashboard_setup', 'admin_rss_feed_register_widgets');
     
    188216
    189217
    190     $wsx_logo_url = wp_get_attachment_url(get_option('wsx_rss_feed_image_attachment_id'));
     218    $wsx_logo_url = esc_url(wp_get_attachment_url(get_option('wsx_rss_feed_image_attachment_id')));
    191219    $wsx_logo_title = esc_attr(get_option('wsx_logo_title'));
    192220    $wsx_logo_target_link = esc_attr(get_option('wsx_logo_target_link'));
     221    $wsx_logo_id = get_option('wsx_rss_feed_image_attachment_id');
    193222
    194223    echo '<div class="wsx-rss-feed-widget1">';
     
    198227            $title = 'title="' . $wsx_logo_title . '"';
    199228            $alt = 'alt="' . $wsx_logo_title . '"';
    200             echo "<div class='wsx-log-wrap clearfix'><a $title href=" . $wsx_logo_target_link . " target='_blank'><img $alt src=" . $wsx_logo_url . "></a>";
    201             echo '<div class="wsx_company_name"><span class="wsx_comp_name">' . $wsx_logo_title . '</span>';
    202             echo '<a href="' . $wsx_logo_target_link . '" target="_blank" title="' . $wsx_logo_title . '"><span class="wsx_company_url">' . $wsx_logo_target_link . '</span></a></div></div>';
     229           
     230            echo "<div class='wsx-log-wrap clearfix'>";
     231            echo '<a ' . esc_attr($wsx_logo_title ? 'title="' . $wsx_logo_title . '"' : '') . ' href="' . esc_url($wsx_logo_target_link) . '" target="_blank">';
     232            echo '<img ' . esc_attr($wsx_logo_title ? 'alt="' . $wsx_logo_title . '"' : '') . ' src="' . esc_url($wsx_logo_url) . '">';
     233            echo '</a>';
     234           
     235            echo '<div class="wsx_company_name"><span class="wsx_comp_name">' . esc_attr($wsx_logo_title) . '</span>';
     236            echo '<a href="' . esc_url($wsx_logo_target_link) . '" target="_blank" title="' . esc_attr($wsx_logo_title) . '"><span class="wsx_company_url">' . esc_url($wsx_logo_target_link) . '</span></a></div></div>';
    203237        }
    204238        else if ($wsx_logo_url <> "" && $wsx_logo_target_link <> "")
    205239        {
    206             echo "<div class='wsx-log-wrap clearfix'><a href=" . $wsx_logo_target_link . " target='_blank'><img src=" . $wsx_logo_url . "></a>";
    207             echo '<a href="' . $wsx_logo_target_link . '" target="_blank"><span class="wsx_company_url">' . $wsx_logo_target_link . '</span></a></div>';
     240            //echo "<div class='wsx-log-wrap clearfix'><a href=" . esc_url($wsx_logo_target_link) . " target='_blank'><img src=" . esc_url($wsx_logo_url) . "></a>";
     241
     242            if ($wsx_logo_id) {
     243                echo esc_html("<div class='wsx-log-wrap clearfix'>");
     244                echo '<a href="' . esc_url($wsx_logo_target_link) . '" target="_blank">';
     245                echo wp_get_attachment_image($wsx_logo_id, 'full', false, ['alt' => esc_attr__('Logo', 'admin-dashboard-rss-feed')]);
     246                echo '</a></div>';
     247            }
     248
     249            echo '<a href="' . esc_url($wsx_logo_target_link) . '" target="_blank"><span class="wsx_company_url">' . esc_url($wsx_logo_target_link) . '</span></a></div>';
    208250        }
    209251        else if ($wsx_logo_url <> "" && $wsx_logo_title <> "")
    210252        {
    211253            $alt = 'alt="' . $wsx_logo_title . '"';
    212             echo "<div class='wsx-log-wrap clearfix'><img $alt src=" . $wsx_logo_url . ">";
    213             echo '<div class="wsx_company_name"><span class="wsx_comp_name">' . $wsx_logo_title . '</span></div>';
     254            echo "<div class='wsx-log-wrap clearfix'><img ".esc_attr($alt)." src=" . esc_url($wsx_logo_url) . ">";
     255            echo '<div class="wsx_company_name"><span class="wsx_comp_name">' . esc_attr($wsx_logo_title) . '</span></div>';
    214256        }
    215257        else if ($wsx_logo_title <> "" && $wsx_logo_target_link <> "")
    216258        {
    217             echo '<div class="wsx-log-wrap clearfix"><div style="float: none;" class="wsx_company_name"><span class="wsx_comp_name">' . $wsx_logo_title . '</span></div><br />';
    218             echo '<a style="float: none;" href="' . $wsx_logo_target_link . '" target="_blank" title="' . $wsx_logo_title . '"><span class="wsx_company_url">' . $wsx_logo_target_link . '</span></a></div>';
     259            echo '<div class="wsx-log-wrap clearfix"><div style="float: none;" class="wsx_company_name"><span class="wsx_comp_name">' . esc_attr($wsx_logo_title) . '</span></div><br />';
     260            echo '<a style="float: none;" href="' . esc_url($wsx_logo_target_link) . '" target="_blank" title="' . esc_attr($wsx_logo_title) . '"><span class="wsx_company_url">' . esc_url($wsx_logo_target_link) . '</span></a></div>';
    219261        }
    220262        else
     
    222264            if ($wsx_logo_url <> "")
    223265            {
    224                 echo "<div class='wsx-log-wrap clearfix'><img src=" . $wsx_logo_url . "></div>";
     266                echo "<div class='wsx-log-wrap clearfix'>";
     267                echo wp_get_attachment_image($wsx_logo_id, 'full', false, ['alt' => esc_attr__('Logo', 'admin-dashboard-rss-feed')]);
     268                echo "</div>";
    225269            }
    226270            if ($wsx_logo_title <> "")
    227271            {
    228                 echo '<div class="wsx-log-wrap clearfix"><div class="wsx_company_name"><span class="wsx_comp_name">' . $wsx_logo_title . '</span></div></div>';
     272                echo '<div class="wsx-log-wrap clearfix"><div class="wsx_company_name"><span class="wsx_comp_name">' . esc_attr($wsx_logo_title) . '</span></div></div>';
    229273            }
    230274            if ($wsx_logo_target_link <> "")
    231275            {
    232                 echo "<div class='wsx-log-wrap clearfix'><a href=" . $wsx_logo_target_link . " target='_blank'><span class='wsx_company_url'>" . $wsx_logo_target_link . "</span></a></div>";
     276                echo "<div class='wsx-log-wrap clearfix'><a href=" . esc_url($wsx_logo_target_link) . " target='_blank'><span class='wsx_company_url'>" . esc_url($wsx_logo_target_link) . "</span></a></div>";
    233277            }
    234278        }
     
    248292        foreach($xml->channel->item as $entry) {
    249293            if($in <= $feed_count) {
    250                 echo "<li><a href='$entry->link' title='$entry->title'>" . $entry->title . "</a>";         
    251                 echo "<p>" .mb_substr(strip_tags($entry->description), 0, 120). "...</p></li>";
     294                echo "<li><a href='".esc_url($entry->link)."' title='".esc_attr($entry->title)."'>" . esc_attr($entry->title) . "</a>";         
     295               
     296                echo '<p>' . esc_html(mb_substr(wp_strip_all_tags(html_entity_decode($entry->description, ENT_QUOTES, 'UTF-8')), 0, 120)) . '...</p></li>';
     297
    252298                $in++;
    253299            }
     
    256302
    257303    } else {
    258         $settings = '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=admin-dashboard-rss-feed%2Fadmin-rss-feed.php')) . '">Settings</a>';
    259         echo '<li><strong>' . __('Something went wrong! Please check the Feed URL ' . $settings . ' and provide valid RSS feed URL and check back this page.', 'admin_rss_feed') . '</strong></li>';
     304        $settings = '<a href="' . esc_url(get_admin_url(null, 'options-general.php?page=wsx-rss-feed-settings')) . '">Settings</a>';
     305        // Translators: %s will be replaced with the feed settings URL.
     306        echo '<li><strong>' . sprintf(esc_html__('Something went wrong! Please check the Feed URL %s and provide a valid RSS feed URL, then check back on this page.', 'admin-dashboard-rss-feed'),
     307            esc_url($settings)
     308        ) . '</strong></li>';
     309
    260310    }
    261311
     
    263313
    264314}
    265 add_action('admin_footer', 'media_selector_print_script');
     315
     316
     317
     318/*add_action('admin_footer', 'media_selector_print_script');
    266319function media_selector_print_script()
    267320{
    268     if(!empty($_GET['page'])){
    269     if($_GET['page'] == "admin-dashboard-rss-feed/admin-rss-feed.php") {
    270 
    271         $wsx_rss_feed_image_attachment_post_id = get_option('wsx_rss_feed_image_attachment_id', 0);
     321    exit;
     322// Check if the page parameter exists and verify the nonce
     323if (
     324    isset($_GET['page']) &&
     325    sanitize_text_field(wp_unslash($_GET['page'])) === "admin-dashboard-rss-feed/admin-rss-feed.php") {
     326
     327    $wsx_rss_feed_image_attachment_post_id = get_option('wsx_rss_feed_image_attachment_id', 0);
    272328    ?><script type='text/javascript'>
    273329            jQuery( document ).ready( function( $ ) {
     
    280336                var wp_media_post_id = wp.media.model.settings.post.id; // Store the old id
    281337                var set_to_post_id = <?php
    282         echo $wsx_rss_feed_image_attachment_post_id; ?>; // Set this
     338                echo esc_html($wsx_rss_feed_image_attachment_post_id); ?>; // Set this
    283339
    284340            if(set_to_post_id == 0) {
     
    351407            });
    352408        </script>
    353 <?php } }// End of If part
    354 } ?>
     409<?php } // End of If part
     410} */?>
  • admin-dashboard-rss-feed/trunk/admin/css/style.css

    r2219558 r3257047  
    77.wsx-log-wrap.clearfix a {
    88    float: left;
    9     margin: 5px 30px 0 0;
     9    margin: 5px 0px 0 0;
    1010}
    1111
  • admin-dashboard-rss-feed/trunk/readme.txt

    r3234012 r3257047  
    44Tags: admin-rss-feed, rss-feed, wordpress-admin-dashboard, show-rss-feed, admin-widget
    55Requires at least: 4.7.5
    6 Tested up to: 6.7.1
    7 Stable tag: 3.4
     6Tested up to: 6.7
     7Stable Tag: 3.5
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     10Admin Dashboard RSS Feed displays company news in the WordPress Admin Dashboard using an RSS feed. It provides quick access to the latest updates.
    1011
    11 This plugin shows the latest news in the WordPress Admin Dashboard from the RSS feed URL that you provide.
     12== Short Description ==
     13This plugin shows latest news in the WordPress Admin Dashboard from the RSS feed URL that you provide.
     14
    1215
    1316== Description ==
     
    1518Are you a web design company looking to broadcast your company's latest news in your client's Admin Dashboard? This plugin helps to show your latest news in the WordPress Admin Dashboard via an RSS feed.
    1619
    17 This plugin is very simple to install and configure. After successful install and activation, just provide this info and you are set:
     20This plugin is very simple to install and configure. After successful install and activation. just provide this info and you are set:
    1821
    19 Your company name: 
    20 Your company logo: 
    21 Your website: 
    22 Your company RSS feed URL: 
     22Your company name:
     23Your company logo:
     24Your website:
     25Your company RSS feed URL:
    2326Set the number of items to show:
    2427
     
    2730== Installation ==
    2831
    29 1.  Install the plugin in the Admin => Plugins menu => Add New => Upload => Select the zip file => Install Now.
    30 2.  Activate Plugin in the Admin => Plugins Menu.
    31 3.  On the left navigation, go to Settings and click on the "Admin RSS Feed" page.
    32 4.  Fill in the required information and save the settings.
    33 5.  Once you are done with the settings, visit your Dashboard to see the latest news. Usually, this widget will be at the bottom, but you can drag and drop it to the top section.
     321.  Install the plugin in the Admin => Plugins menu => Add New => Upload => Select the zip file => Install Now
     332.  Activate Plugin in the Admin => Plugins Menu
     343.  On the left navigation, please go to Settings and, under that, click on the "Admin RSS Feed" page.
     354.  Please fill the required information and save the settings.
     365.  Once you are done with the settings, Visit your Dashboard to See the Latest News. Usually, this widget will be at the bottom, simply drag and drop to the top section.
    3437
    3538== Frequently Asked Questions ==
    3639
    37 = After activating the plugin, what should I do? =
     40= After activating the plugin what should I do? =
    3841
    3942Please go to the settings screen and enter your settings to get started.
     
    4750We suggest 64 pixels wide x 64 pixels high and preferably in .jpg or .png format.
    4851
    49 = What happens when there is an error in the feed URL? =
     52= What happens when there is an error in the feed URL?  =
    5053
    51 The plugin identifies an invalid feed URL and shows an error message in the Dashboard Widget. When you see that error message, go to the settings screen and enter a valid feed URL.
     54The plugin identifies an invalid feed URL and shows error message in the Dashboard Widget. When you see that error message, you should go to the settings screen and enter a valid feed URL.
     55
    5256
    5357== Screenshots ==
    5458
    55 1. screenshot-1.png 
    56 Note that the screenshot is available under '/assets/screenshot-1.png'.
     591. screenshot-1.png.
    5760
    58 2. screenshot-2.png 
    59 This is the second screenshot, which is available in '/assets/screenshot-2.png'.
     61Note that the screenshot is available under '/assets/screenshot-1.png'
     62
     632. screenshot-2.png.
     64This is the second screenshot, which is available in '/assets/screenshot-2.png'
    6065
    6166== Changelog ==
    6267
    63 = 3.4 =
    64 * Updated the plugin to be compatible with 6.7.1.
    65 
    66 = 3.3 =
    67 * Updated the plugin to be compatible with 6.6.1.
    68 
    69 = 3.2 =
    70 * Fixed bugs.
    71 * Updated the plugin to be compatible with 6.4.3.
    72 
    73 = 3.1 =
    74 * Fixed bugs.
    75 * Updated the plugin to be compatible with 6.1.1.
    76 
    77 = 3.0 =
    78 * Fixed PHP warnings.
    79 * Updated the plugin to be compatible with 6.0.2.
    80 
    81 = 2.9 =
    82 * Updated the plugin to be compatible with 6.0.1.
    83 
    84 = 2.8 =
    85 * Updated the plugin to be compatible with 6.0
    86 
    87 = 2.7 =
    88 * Updated the plugin to be compatible with 5.9.3
    89 
    90 = 2.6 =
    91 * Updated the plugin to be compatible with 5.9.2
    92 
    93 = 2.5 =
    94 * Updated the plugin to be compatible with 5.9.1
    95 
    96 = 2.4 =
    97 * Updated the plugin to be compatible with 5.9
    98 
    99 = 2.3 =
    100 * Updated the plugin to be compatible with 5.8.3
    101 
    102 = 2.2 =
    103 * Updated the plugin to be compatible with 5.8.2
    104 
    105 = 2.1 =
    106 * Updated the plugin to be compatible with 5.8.1
    107 
    108 = 2.0 =
    109 * Updated the plugin to be compatible with 5.8
    110 
    111 = 1.10 =
    112 * Updated the plugin to be compatible with 5.8
    113 
    114 = 1.9 =
    115 * Updated the plugin to be compatible with 5.7.2
    116 
    117 = 1.8 =
    118 * Updated the plugin to be compatible with 5.7.
    119 
    120 = 1.7 =
    121 * Updated the plugin to be compatible with 5.6.
    122 
    123 = 1.6 =
    124 * Updated the plugin to be compatible with 5.5.1.
    125 
    126 = 1.5 =
    127 * Updated the plugin to be compatible with 5.4.2
    128 
    129 = 1.4 =
    130 * Updated the plugin to be compatible with 5.4
    131 
    13268= 1.2 =
    133 * Used the latest WordPress inherent image uploader function to upload the company Logo.
    13469* Updated the plugin to be compatible with 5.0
    13570
     
    14277* Used the latest WordPress inherent image uploader function to upload the company Logo.
    14378
    144 == Upgrade Notice ==
     79= 1.2 =
     80* Used the latest WordPress inherent image uploader function to upload the company Logo.
    14581
    146 = 3.3 =
    147 Update the plugin to ensure compatibility with WordPress 6.6.1 and fix bugs.
     82= 1.4 =
     83* Updated the plugin to be compatible with 5.4
    14884
     85= 1.5 =
     86* Updated the plugin to be compatible with 5.4.2
     87
     88= 1.6 =
     89* Updated the plugin to be compatible with 5.5.1.
     90
     91= 1.7 =
     92* Updated the plugin to be compatible with 5.6.
     93
     94= 1.8 =
     95* Updated the plugin to be compatible with 5.7.
     96
     97= 1.9 =
     98* Updated the plugin to be compatible with 5.7.2
     99
     100= 1.10 =
     101* Updated the plugin to be compatible with 5.8
     102
     103= 2.0 =
     104* Updated the plugin to be compatible with 5.8
     105
     106= 2.1 =
     107* Updated the plugin to be compatible with 5.8.1
     108
     109= 2.2 =
     110* Updated the plugin to be compatible with 5.8.2
     111
     112= 2.3 =
     113* Updated the plugin to be compatible with 5.8.3
     114
     115= 2.4 =
     116* Updated the plugin to be compatible with 5.9
     117
     118= 2.5 =
     119* Updated the plugin to be compatible with 5.9.1
     120
     121= 2.6 =
     122* Updated the plugin to be compatible with 5.9.2
     123
     124= 2.7 =
     125* Updated the plugin to be compatible with 5.9.3
     126
     127= 2.8 =
     128* Updated the plugin to be compatible with 6.0
     129
     130= 2.9 =
     131* Updated the plugin to be compatible with 6.0.1
     132
     133= 3.0 =
     134* Fixed php warnings
     135* Updated the plugin to be compatible with 6.0.2
     136
     137= 3.1 =
     138* Fixed bugs
     139* Updated the plugin to be compatible with 6.1.1
     140
     141= 3.2 =
     142* Fixed bugs
     143* Updated the plugin to be compatible with 6.4.3
     144
     145= 3.5 =
     146* Fixed bugs
     147* Fixed php warnings
     148* Updated the plugin to be compatible with 6.7.2
Note: See TracChangeset for help on using the changeset viewer.