Plugin Directory

Changeset 3115037

Timestamp:
07/09/2024 01:48:56 PM (4 weeks ago)
Author:
lumiblog
Message:
  • NEW FEATURE: Each month to start from SUNDAY
  • FIX: Fixed the form submission success message display location
  • UPDATE: Plugin settings page redesigned
Location:
quick-event-calendar
Files:
28 added
10 edited

Legend:

Unmodified
Added
Removed
  • quick-event-calendar/trunk/calendar.js

    r2943754 r3115037  
    44         * Set week days and get current date
    55         */
    6         var mon = 'Mon',
     6        var sun = 'Sun',
     7            mon = 'Mon',
    78            tue = 'Tue',
    89            wed = 'Wed',
    910            thu = 'Thu',
    1011            fri = 'Fri',
    11             sat = 'Sat',
    12             sun = 'Sun';
     12            sat = 'Sat';
    1313
    1414        var d = new Date();
    1515
    16         //var strDate = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
    1716        var yearNumber = (new Date).getFullYear();
    1817        var strDate = yearNumber + "/" + (d.getMonth() + 1) + "/" + d.getDate();
     
    2827        }
    2928
    30         function setMonth(monthNumber, mon, tue, wed, thu, fri, sat, sun) {
     29        function setMonth(monthNumber, ) {
    3130            jQuery('.month').text(GetMonthName(monthNumber) + ' ' + yearNumber);
    3231            jQuery('.month').attr('data-month', monthNumber);
    33             printDateNumber(monthNumber, mon, tue, wed, thu, fri, sat, sun);
     32            printDateNumber(monthNumber, );
    3433        }
    3534
    36         setMonth(monthNumber, mon, tue, wed, thu, fri, sat, sun);
     35        setMonth(monthNumber, );
    3736
    3837        jQuery('.qcc-btn-next').on('click', function (e) {
    39             var monthNumber = jQuery('.month').attr('data-month');
     38            var monthNumber = );
    4039            if (monthNumber > 11) {
    41                 jQuery('.month').attr('data-month', '0');
    42                 var monthNumber = jQuery('.month').attr('data-month');
    43                 yearNumber = yearNumber + 1;
    44                 setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thu, fri, sat, sun);
     40                monthNumber = 1;
     41                yearNumber++;
    4542            } else {
    46                 setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thu, fri, sat, sun);
     43                ;
    4744            }
     45
     46
    4847            e.preventDefault();
    4948        });
    5049
    5150        jQuery('.qcc-btn-prev').on('click', function (e) {
    52             var monthNumber = jQuery('.month').attr('data-month');
     51            var monthNumber = );
    5352            if (monthNumber < 2) {
    54                 jQuery('.month').attr('data-month', '13');
    55                 var monthNumber = jQuery('.month').attr('data-month');
    56                 yearNumber = yearNumber - 1;
    57                 setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thu, fri, sat, sun);
     53                monthNumber = 12;
     54                yearNumber--;
    5855            } else {
    59                 setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thu, fri, sat, sun);
    60             };
     56                monthNumber--;
     57            }
     58            jQuery('.month').attr('data-month', monthNumber);
     59            setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat);
    6160            e.preventDefault();
    6261        });
     
    6665         */
    6766
    68         function printDateNumber(monthNumber, mon, tue, wed, thu, fri, sat, sun) {
    69             jQuery(jQuery('.qcc-calendar-container tbody tr')).each(function(index) {
     67        function setDaysInOrder(sun, mon, tue, wed, thu, fri, sat) {
     68            jQuery('.qcc-calendar-container thead tr').append(
     69                '<td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td>'
     70            );
     71        }
     72
     73        function printDateNumber(monthNumber, sun, mon, tue, wed, thu, fri, sat) {
     74            jQuery('.qcc-calendar-container tbody tr').each(function() {
    7075                jQuery(this).empty();
    7176            });
    7277
    73             jQuery(jQuery('.qcc-calendar-container thead tr')).each(function(index) {
    74                 jQuery(this).empty();
    75             });
     78            jQuery('.qcc-calendar-container thead tr').empty();
    7679
    77             function getDaysInMonth(month, year) {
    78                 // Since no month has fewer than 28 days
    79                 var date = new Date(year, month, 1);
    80                 var days = [];
    81                 while (date.getMonth() === month) {
    82                     days.push(new Date(date));
    83                     date.setDate(date.getDate() + 1);
     80            setDaysInOrder(sun, mon, tue, wed, thu, fri, sat);
     81
     82            var firstDay = new Date(yearNumber, monthNumber - 1, 1);
     83            var startingDay = firstDay.getDay(); // 0 (Sunday) to 6 (Saturday)
     84            var monthLength = new Date(yearNumber, monthNumber, 0).getDate();
     85
     86            var day = 1;
     87            var rows = Math.ceil((startingDay + monthLength) / 7);
     88
     89            for (var i = 0; i < rows; i++) {
     90                var row = jQuery('.qcc-calendar-container tbody tr').eq(i);
     91                for (var j = 0; j < 7; j++) {
     92                    if (i === 0 && j < startingDay) {
     93                        row.append('<td></td>');
     94                    } else if (day > monthLength) {
     95                        break;
     96                    } else {
     97                        let dataset_timestamp = `${yearNumber}-${monthNumber}-${day}`;
     98                        row.append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + day + '">' + day + '</td>');
     99                        day++;
     100                    }
    84101                }
    85                 return days;
    86102            }
    87103
    88             i = 0;
    89 
    90             setDaysInOrder(mon, tue, wed, thu, fri, sat, sun);
    91 
    92             function setDaysInOrder(mon, tue, wed, thu, fri, sat, sun) {
    93                 var monthDay = getDaysInMonth(monthNumber - 1, yearNumber)[0].toString().substring(0, 3);
    94                 if (monthDay === 'Mon') {
    95                     jQuery('.qcc-calendar-container thead tr').append('<td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td>');
    96                 } else if (monthDay === 'Tue') {
    97                     jQuery('.qcc-calendar-container thead tr').append('<td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td>');
    98                 } else if (monthDay === 'Wed') {
    99                     jQuery('.qcc-calendar-container thead tr').append('<td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td>');
    100                 } else if (monthDay === 'Thu') {
    101                     jQuery('.qcc-calendar-container thead tr').append('<td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td>');
    102                 } else if (monthDay === 'Fri') {
    103                     jQuery('.qcc-calendar-container thead tr').append('<td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td>');
    104                 } else if (monthDay === 'Sat') {
    105                     jQuery('.qcc-calendar-container thead tr').append('<td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td>');
    106                 } else if (monthDay === 'Sun') {
    107                     jQuery('.qcc-calendar-container thead tr').append('<td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td>');
    108                 }
    109             }
    110             jQuery(getDaysInMonth(monthNumber - 1, yearNumber)).each(function (index) {
    111                 var index = index + 1;
    112 
    113                 let dataset_timestamp = `${yearNumber}-${monthNumber}-${index}`;
    114 
    115                 if (index < 8) {
    116                     jQuery('.qcc-calendar-container tbody tr.1').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>');
    117                 } else if (index < 15) {
    118                     jQuery('.qcc-calendar-container tbody tr.2').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>');
    119                 } else if (index < 22) {
    120                     jQuery('.qcc-calendar-container tbody tr.3').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>');
    121                 } else if (index < 29) {
    122                     jQuery('.qcc-calendar-container tbody tr.4').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>');
    123                 } else if (index < 32) {
    124                     jQuery('.qcc-calendar-container tbody tr.5').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>');
    125                 }
    126                 i++;
    127             });
    128             var date = new Date();
    129             var month = date.getMonth() + 1;
    130             setCurrentDay(month);
     104            setCurrentDay(d.getMonth() + 1);
    131105            setEvent();
    132106            displayEvent();
     
    146120         * Add class '.active' on calendar date
    147121         */
    148         jQuery('.qcc-calendar-container tbody td').on('click', function (e) {
     122        jQuery('.qcc-calendar-container tbody', function (e) {
    149123            if (jQuery(this).hasClass('qcc-event')) {
    150124                jQuery('.qcc-calendar-container tbody td').removeClass('active');
     
    176150         */
    177151        function displayEvent() {
    178             jQuery('.qcc-calendar-container tbody td').on('click', function (e) {
     152            jQuery('.qcc-calendar-container tbody', function (e) {
    179153                jQuery('.qcc-day-event').slideUp('fast');
    180154                var monthEvent = jQuery(this).attr('date-month'),
  • quick-event-calendar/trunk/css/gbad.css

    r3048726 r3115037  
    1010    font-size: 19px;
    1111}
     12
     13
     14
     15
     16
     17
     18
    1219.gb-ad svg {
    1320    height: 34px;
    1421    vertical-align: text-bottom;
    1522}
    16 .gb-ad h3.gb-ad--header {
    17     color: #ffffff;
    18     font-size: 1.90em;
    19     font-weight: 400;
     23.gb- {
     24    color: #;
     25    font-size: ;
     26    font-weight: 00;
    2027    line-height: 1.75;
    21     margin: 8px 0;
    22     padding: 16px 24px;
    23     border-bottom: 1px solid rgba(255, 255, 255, 0.15);
     28    margin: px 0;
     29    padding: 4px;
     30    border-bottom: 1px solid ;
    2431}
    2532.gb-ad .gb-ad--content {
  • quick-event-calendar/trunk/includes/functions.php

    r3048603 r3115037  
    142142    $qcc_post_type = get_option('qcc_post_type');
    143143    $qcc_category = get_option('qcc_category');
     144
     145
    144146
    145147    if (isset($_POST['qcc_new_event_submit']) && wp_verify_nonce($_POST['qcc_new_event_field'], 'qcc_new_event_action')) {
     
    165167        do_action('wp_insert_post', 'wp_insert_post');
    166168
    167         echo '<p>' . __('Event submitted successfully!', 'qcc') . '</p>';
     169        >';
    168170    }
    169171
    170     $display = '<form method="post" class="qcc-form">
     172    $display = '<form method="post" class="qcc-form">
    171173        <p>
    172174            <input type="text" size="48" name="qcc_date" id="qcc-datepicker" placeholder="' . __('Date', 'qcc') . '" required>
  • quick-event-calendar/trunk/includes/settings.php

    r3048615 r3115037  
    33
    44function qcc_calendar_admin_page() {
    5     ?>
    6     <div class="wrap">
    7         <h1><?php _e('Quick Event Calendar', 'quick-event-calendar'); ?></h1>
    8 
    9         <?php
    10         $t = isset($_GET['tab']) ? $_GET['tab'] : 'dashboard_tab';
    11         if(isset($_GET['tab']))
    12             $t = $_GET['tab'];
     5?>
     6<div class="wrap">
     7<h1><?php _e('Quick Event Calendar', 'quick-event-calendar'); ?></h1>
     8
     9<?php
     10$t = isset($_GET['tab']) ? $_GET['tab'] : 'dashboard_tab';
     11if(isset($_GET['tab']))
     12$t = $_GET['tab'];
    1313
    1414        $i = get_option('ip_slug');
    15         ?>
    16         <h2 class="nav-tab-wrapper">
    17             <a href="options-general.php?page=qcc&amp;tab=dashboard_tab" class="nav-tab <?php echo $t == 'dashboard_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Dashboard', 'quick-event-calendar'); ?></a>
    18             <a href="options-general.php?page=qcc&amp;tab=settings_tab" class="nav-tab <?php echo $t == 'settings_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Settings', 'quick-event-calendar'); ?></a>
    19             <a href="options-general.php?page=qcc&amp;tab=configurator_tab" class="nav-tab <?php echo $t == 'configurator_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Configurator', 'quick-event-calendar'); ?></a>
    20             <a href="options-general.php?page=qcc&amp;tab=documentation" class="nav-tab <?php echo $t == 'documentation' ? 'nav-tab-active' : ''; ?>"><?php _e('Documentation', 'quick-event-calendar'); ?></a>
    21         </h2>
    22 
    23         <?php if($t == 'dashboard_tab') {
    24             global $wpdb; ?>
    25 
    26             <div class="gb-ad" id="gb-ad">
    27                 <h3 class="gb-ad--header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 68"><defs/><rect width="100%" height="100%" fill="none"/><g class="currentLayer"><path fill="#fff" d="M34.76 33C22.85 21.1 20.1 13.33 28.23 5.2 36.37-2.95 46.74.01 50.53 3.8c3.8 3.8 5.14 17.94-5.04 28.12-2.95 2.95-5.97 5.84-5.97 5.84L34.76 33"/><path fill="#fff" d="M43.98 42.21c5.54 5.55 14.59 11.06 20.35 5.3 5.76-5.77 3.67-13.1.98-15.79-2.68-2.68-10.87-5.25-18.07 1.96-2.95 2.95-5.96 5.84-5.96 5.84l2.7 2.7m-1.76 1.75c5.55 5.54 11.06 14.59 5.3 20.35-5.77 5.76-13.1 3.67-15.79.98-2.69-2.68-5.25-10.87 1.95-18.07 2.85-2.84 5.84-5.96 5.84-5.96l2.7 2.7" class="selected"/><path fill="#fff" d="M33 34.75c-11.9-11.9-19.67-14.67-27.8-6.52-8.15 8.14-5.2 18.5-1.4 22.3 3.8 3.79 17.95 5.13 28.13-5.05 3.1-3.11 5.84-5.97 5.84-5.97L33 34.75"/></g></svg> Thank you for using Quick Event Calendar!</h3>
    28                 <div class="gb-ad--content">
    29                     <p>This plugin has been recently adopted by <a href="https://wpcorner.co" rel="external">WP Corner</a>. We are committed to ensuring<br> its continued development, maintenance, and support. Any existing users can rest assured <br>that the plugin is in good hands and will receive regular updates and improvements going forward.</p>
    30 <p>We would like to thank the previous developer for their hard work in creating and maintaining<br> this plugin. We are excited to build upon their efforts and take this plugin to new heights.</p>
    31 <p>If you encounter any issues or have questions regarding Quick Event Calendar, please visit the<br> <a href="https://wordpress.org/support/plugin/quick-event-calendar/" rel="external">plugin’s support forum</a> or <a href="https://wpcorner.co/contact" rel="external">contact us</a> for assistance.</p>
    32 <p>Stay tuned for exciting updates and new features in the coming months.</p>
    33 
     15        ?>
     16        <h2 class="nav-tab-wrapper">
     17            <a href="options-general.php?page=qcc&amp;tab=dashboard_tab" class="nav-tab <?php echo $t == 'dashboard_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Dashboard', 'quick-event-calendar'); ?></a>
     18            <a href="options-general.php?page=qcc&amp;tab=settings_tab" class="nav-tab <?php echo $t == 'settings_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Settings', 'quick-event-calendar'); ?></a>
     19            <a href="options-general.php?page=qcc&amp;tab=configurator_tab" class="nav-tab <?php echo $t == 'configurator_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Configurator', 'quick-event-calendar'); ?></a>
     20            <a href="options-general.php?page=qcc&amp;tab=documentation" class="nav-tab <?php echo $t == 'documentation' ? 'nav-tab-active' : ''; ?>"><?php _e('Documentation', 'quick-event-calendar'); ?></a>
     21        </h2>
     22
     23        <div class="qcc-admin-content">
     24            <div class="qcc-admin-main">
     25                <?php if($t == 'dashboard_tab') {
     26                    global $wpdb; ?>
     27
     28                    <h2 class="gb-h"><?php _e('Quick Event Calendar Overview', 'quick-event-calendar'); ?></h2>
     29                    <div class="qcc-video-container">
     30                    <div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/981290390?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="Quick Event Calendar Settings Overview"></iframe></div><script src="https://player.vimeo.com/api/player.js"></script>
     31                    </div>
     32
     33                    <?php
     34                    echo '<p>You are using Quick Event Calendar plugin version <strong>' . QEC_VERSION . '</strong>.</p>';
     35                } else if($t == 'configurator_tab') {
     36                    if(isset($_POST['isQCCSubmit'])) {
     37                        update_option('qcc_accent_colour', sanitize_text_field($_POST['qcc_accent_colour']));
     38                        update_option('qcc_day_colour', sanitize_text_field($_POST['qcc_day_colour']));
     39                        update_option('qcc_event_colour', sanitize_text_field($_POST['qcc_event_colour']));
     40
     41                        echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>';
     42                    }
     43                    ?>
     44                    <form method="post" action="">
     45                        <h2><?php _e('Calendar Configurator', 'qcc'); ?></h2>
     46                        <p>The <b>Calendar configurator</b> allows you to select calendar colours to match your site design.</p>
     47                        <table class="form-table">
     48                            <tbody>
     49                                <tr>
     50                                    <th scope="row"><label>Calendar design</label></th>
     51                                    <td>
     52                                        <p>
     53                                            <input type="text" name="qcc_accent_colour" id="qcc_accent_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_accent_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_accent_colour">Accent colour</label>
     54                                            <br><small><?php _e('The accent colour is used for selected dates background and hover states.', 'qcc'); ?></small>
     55                                        </p>
     56                                        <p>
     57                                            <input type="text" name="qcc_day_colour" id="qcc_day_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_day_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_day_colour">Current day background colour</label>
     58                                            <br><small><?php _e('The current day colour is used for current date background.', 'qcc'); ?></small>
     59                                        </p>
     60                                        <p>
     61                                            <input type="text" name="qcc_event_colour" id="qcc_event_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_event_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_event_colour">Event colour</label>
     62                                            <br><small><?php _e('The event colour is used for event dot indicators.', 'qcc'); ?></small>
     63                                        </p>
     64                                    </td>
     65                                </tr>
     66                            </tbody>
     67                        </table>
     68
     69                        <hr>
     70                        <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p>
     71                    </form>
     72                <?php } else if($t == 'settings_tab') {
     73                    if(isset($_POST['isQCCSubmit'])) {
     74                        update_option('qcc_post_type', sanitize_text_field($_POST['qcc_post_type']));
     75                        update_option('qcc_category', (int) $_POST['qcc_category']);
     76
     77                        update_option('qcc_show_published', (int) $_POST['qcc_show_published']);
     78                        update_option('qcc_show_scheduled', (int) $_POST['qcc_show_scheduled']);
     79
     80                        update_option('qcc_use_date_meta', (int) $_POST['qcc_use_date_meta']);
     81                        update_option('qcc_date_meta_month', sanitize_text_field($_POST['qcc_date_meta_month']));
     82                        update_option('qcc_date_meta_day', sanitize_text_field($_POST['qcc_date_meta_day']));
     83
     84                        echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>';
     85                    }
     86                    ?>
     87                    <form method="post" action="">
     88                        <h2><?php _e('General Settings', 'qcc'); ?></h2>
     89                        <p><?php _e('These settings apply to the default behaviour of your calendar.', 'qcc'); ?></p>
     90                        <table class="form-table">
     91                            <tbody>
     92                                <tr>
     93                                    <th scope="row"><label for="qcc_post_type">(Custom) Post Type</label></th>
     94                                    <td>
     95                                        <p>
     96                                            <select name="qcc_post_type" id="qcc_post_type" placeholder="<?php _e('Select a custom post type...', 'qcc'); ?>">
     97                                                <option value="" disabled selected><?php _e('Select a custom post type...', 'qcc'); ?></option>
     98                                                <?php
     99                                                $qcc_post_type = get_option('qcc_post_type');
     100
     101                                                $args = [
     102                                                    'public' => true,
     103                                                ];
     104                                                $post_types = get_post_types($args, 'names');
     105                                                foreach($post_types as $post_type) {
     106                                                    if($qcc_post_type == $post_type) {
     107                                                        $selected = 'selected';
     108                                                    } else {
     109                                                        $selected = '';
     110                                                    }
     111                                                    echo '<option value="' . $post_type . '" ' . $selected . '>' . $post_type . '</option>';
     112                                                }
     113                                                ?>
     114                                            </select>
     115                                            <br><small><?php _e('Use this (custom) post type as calendar event type.', 'qcc'); ?></small>
     116                                        </p>
     117                                        <p>
     118                                            <?php
     119                                            $qcc_category = get_option('qcc_category');
     120
     121                                            $args = [
     122                                                'show_count'        => 1,
     123                                                'hide_empty'        => 0,
     124                                                'hierarchical'      => 1,
     125                                                'name'              => 'qcc_category',
     126                                                'taxonomy'          => 'category',
     127                                                'selected'          => $qcc_category,
     128                                            ];
     129
     130                                            wp_dropdown_categories($args);
     131                                            ?>
     132                                            <br><small><?php _e('Use this category as calendar event category.', 'qcc'); ?></small>
     133                                        </p>
     134                                    </td>
     135                                </tr>
     136                                <tr>
     137                                    <th scope="row"><label for="qcc_show_published">Visibility</label></th>
     138                                    <td>
     139                                        <p>
     140                                            <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_published" id="qcc_show_published" value="1" <?php if(get_option('qcc_show_published') == 1) echo 'checked'; ?>> <label for="qcc_show_published"><?php _e('Show published posts', 'qcc'); ?></label><br>
     141                                            <small><?php _e('Show published posts in the calendar.', 'qcc'); ?></small><br>
     142
     143                                            <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_scheduled" id="qcc_show_scheduled" value="1" <?php if(get_option('qcc_show_scheduled') == 1) echo 'checked'; ?>> <label for="qcc_show_scheduled"><?php _e('Show scheduled/future posts', 'qcc'); ?></label><br>
     144                                            <small><?php _e('Show scheduled/future posts in the calendar.', 'qcc'); ?></small>
     145                                        </p>
     146                                    </td>
     147                                </tr>
     148                                <tr>
     149                                    <th scope="row"><label for="qcc_use_date_meta">Date</label></th>
     150                                    <td>
     151                                        <p>
     152                                            <input type="checkbox" class="wppd-ui-toggle" name="qcc_use_date_meta" id="qcc_use_date_meta" value="1" <?php if(get_option('qcc_use_date_meta') == 1) echo 'checked'; ?>> <label for="qcc_use_date_meta"><?php _e('Use custom fields for date', 'qcc'); ?></label>
     153                                            <br><small><?php _e('Use existing custom fields for date (as opposed to post date). Use third party plugins to add custom meta data to your post types. Make sure your existing custom fields are numerical. If this option is checked, it will override the visibility options above.', 'qcc'); ?></small>
     154                                        </p>
     155                                        <p class="qcc_use_date_meta_hidden">
     156                                            <input type="text" class="regular-text" name="qcc_date_meta_month" id="qcc_date_meta_month" value="<?php echo get_option('qcc_date_meta_month'); ?>">
     157                                            <label for="qcc_date_meta_month"><?php _e('Month custom field name', 'qcc'); ?></label>
     158                                            <br><small><?php _e('Your month custom field name.', 'qcc'); ?></small>
     159                                        </p>
     160                                        <p class="qcc_use_date_meta_hidden">
     161                                            <input type="text" class="regular-text" name="qcc_date_meta_day" id="qcc_date_meta_day" value="<?php echo get_option('qcc_date_meta_day'); ?>">
     162                                            <label for="qcc_date_meta_day"><?php _e('Day custom field name', 'qcc'); ?></label>
     163                                            <br><small><?php _e('Your day custom field name.', 'qcc'); ?></small>
     164                                        </p>
     165                                    </td>
     166                                </tr>
     167                            </tbody>
     168                        </table>
     169
     170                        <hr>
     171                        <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p>
     172                    </form>
     173                <?php } else if($t == 'documentation') { ?>
     174                    <h2 class="gb-h">Getting started with Quick Event Calendar</h2>
     175
     176                    <p class="p"><b>Quick Event Calendar</b> is a lightweight, performant, and WordPress-integrated event calendar plugin. It allows you to display events, posts, or any other custom post type in a flexible, responsive calendar format. The calendar can be easily embedded into posts, pages, or widgets using shortcodes or template tags.</p>
     177                    <h3>Installation</h3>
     178                    <ul>
     179                    <li>Log in to your WordPress admin panel.</li>
     180                    <li>Go to <code>Plugins > Add New</code>.</li>
     181                    <li>Search for <code>“Quick Event Calendar”</code> and click <code>“Install Now”</code>.</li>
     182                    <li>After installation, click <code>“Activate”</code>.</li>
     183                    </ul>
     184
     185                    <h3>Configuration</h3>
     186                    <p>Navigate to Settings > Quick Event Calendar.</p>
     187                    <p>In the <code>Settings</code> tab, select the desired post type (e.g., posts, events, or a custom post type) to display in the calendar.</p>
     188                    <p>If the selected post type is <code>“Posts”</code>, choose the desired category.</p>
     189                    <p>Select which posts you want to display in the calendar (published, scheduled, or future).</p>
     190                    <p>If you want to use custom meta fields, note that Quick Event Calendar works with preexisting custom meta fields. You may need to install a third-party plugin to add new custom fields.</p>
     191                    <p>In the <code>Configurator</code> tab, select the accent colour, the event colour and the background colour for the current day.</p>
     192                    <p>When you are done with the settings, use the <code>[qcc-calendar]</code> shortcode in any post, page or widget to show the calendar.</p>
     193
     194                    <h3>Help with shortcodes</h3>
     195                    <p>Use the <code>[qcc-calendar]</code> shortcode in any post or page or widget to show the calendar.</p>
     196                    <p>Use the <code>[qcc-form]</code> shortcode in any post or page or widget to show the calendar submission form.</p>
     197
     198                    <h3>Help with template tags</h3>
     199                    <p>Use the <code>&lt;?php echo do_shortcode("[qcc-calendar]"); ?&gt;</code> code in any page template to show the calendar.</p>
     200                    <p>Use the <code>&lt;?php echo do_shortcode("[qcc-form]"); ?&gt;</code> code in any page template to show the calendar submission form.</p>
     201
     202                    <h3>Help with styling</h3>
     203                    <p>Use the included themes to style your calendar. Use the Default or the Flat theme to match your current WordPress theme appearance.</p>
     204
     205                    <h3>Support</h3>
     206                    <p>If you encounter any issues or have questions regarding Quick Event Calendar, please <a href="https://wordpress.org/support/plugin/quick-event-calendar/">visit the plugin's support forum</a> or <br>
     207                    <a href="mailto:support@wpcorner.co">contact us</a> for assistance.</p>
     208                <?php } ?>
     209            </div>
     210            <div class="qcc-admin-sidebar">
     211            <div class="qcc-card">
     212            <h3><?php _e('Documentation', 'quick-event-calendar'); ?></h3>
     213            <p><?php _e('Get started by spending some time with the documentation to get familiar with Quick Event Calendar. The Documentation will cover all the information needed when using our plugin to build an amazing calendar, as well as some helpful tips and tricks that will make your experience easier and more enjoyable.', 'quick-event-calendar'); ?></p>
     214            <a href="<?php echo admin_url('options-general.php?page=qcc&tab=documentation'); ?>" class="button button-primary"><?php _e('Documentation', 'quick-event-calendar'); ?></a>
     215            </div>
     216                <div class="qcc-card">
     217                    <h3><?php _e('Need Help?', 'quick-event-calendar'); ?></h3>
     218                    <p><?php _e('Having issues or difficulties? Get help from the community on our support forum or contact us through our website contact form.', 'quick-event-calendar'); ?></p>
     219                    <a href="https://wordpress.org/support/plugin/quick-event-calendar/" class="button button-secondary"><?php _e('Visit Support Forum', 'quick-event-calendar'); ?></a>
     220                    <a href="https://wpcorner.co/contact" class="button button-secondary"><?php _e('Contact Support', 'quick-event-calendar'); ?></a>
    34221                </div>
    35                 <div class="gb-ad--footer">
    36                     <p>For support, feature requests and bug reporting, please visit the <a href="hhttps://github.com/wpcorner/quick-event-calendar/issues" rel="external">plugin's Github Repository</a> to open an issue.<br>Built by <a href="https://wpcorner.co" rel="external"><strong>WP Corner</strong>.com</a> &middot; <a href="https://wpcorner.co/support/quick-event-calendar/">Documentation</a> &middot; <small>Code wrangling since 2005</small></p>
    37 
    38                     <p>
    39                         <small>You are using PHP <?php echo PHP_VERSION; ?> and MySQL <?php echo $wpdb->db_version(); ?>.</small>
    40                     </p>
     222                <div class="qcc-card">
     223                    <h3 class="mot"><?php _e('Motivate us!', 'quick-event-calendar'); ?></h3>
     224                    <p><?php _e('Could you please do us a BIG favor and give it a 5-star rating on WordPress? This would boost our motivation and help other users make a comfortable decision while choosing the Quick Event Calendar.', 'quick-event-calendar'); ?></p>
     225                    <div class="star-rating">
     226                        <!-- Add star rating HTML here -->
     227                    </div>
     228                    <a href="https://wordpress.org/support/plugin/quick-event-calendar/reviews/#new-post" class="button button-secondary"><?php _e('Write a review', 'quick-event-calendar'); ?></a>
    41229                </div>
    42230            </div>
    43 
    44             <?php
    45             echo '<small>You are using Quick Event Calendar plugin version <strong>' . QEC_VERSION . '</strong>.</small>
    46             </p>';
    47         } else if($t == 'configurator_tab') {
    48             if(isset($_POST['isQCCSubmit'])) {
    49                 update_option('qcc_accent_colour', sanitize_text_field($_POST['qcc_accent_colour']));
    50                 update_option('qcc_day_colour', sanitize_text_field($_POST['qcc_day_colour']));
    51                 update_option('qcc_event_colour', sanitize_text_field($_POST['qcc_event_colour']));
    52 
    53                 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>';
    54             }
    55             ?>
    56             <style>
    57             .wp-color-result {
    58                 margin: 0 6px 0 0;
    59                 vertical-align: middle;
    60             }
    61             </style>
    62             <form method="post" action="">
    63                 <h2><?php _e('Calendar Configurator', 'qcc'); ?></h2>
    64                 <p>The <b>Calendar configurator</b> allows you to select calendar colours to match your site design.</p>
    65                 <table class="form-table">
    66                     <tbody>
    67                         <tr>
    68                             <th scope="row"><label>Calendar design</label></th>
    69                             <td>
    70                                 <p>
    71                                     <input type="text" name="qcc_accent_colour" id="qcc_accent_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_accent_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_accent_colour">Accent colour</label>
    72                                     <br><small><?php _e('The accent colour is used for selected dates background and hover states.', 'qcc'); ?></small>
    73                                 </p>
    74                                 <p>
    75                                     <input type="text" name="qcc_day_colour" id="qcc_day_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_day_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_day_colour">Current day background colour</label>
    76                                     <br><small><?php _e('The current day colour is used for current date background.', 'qcc'); ?></small>
    77                                 </p>
    78                                 <p>
    79                                     <input type="text" name="qcc_event_colour" id="qcc_event_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_event_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_event_colour">Event colour</label>
    80                                     <br><small><?php _e('The event colour is used for event dot indicators.', 'qcc'); ?></small>
    81                                 </p>
    82                             </td>
    83                         </tr>
    84                     </tbody>
    85                 </table>
    86 
    87                 <hr>
    88                 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p>
    89             </form>
    90         <?php } else if($t == 'settings_tab') { ?>
    91             <?php
    92             if(isset($_POST['isQCCSubmit'])) {
    93                 update_option('qcc_post_type', sanitize_text_field($_POST['qcc_post_type']));
    94                 update_option('qcc_category', (int) $_POST['qcc_category']);
    95 
    96                 update_option('qcc_show_published', (int) $_POST['qcc_show_published']);
    97                 update_option('qcc_show_scheduled', (int) $_POST['qcc_show_scheduled']);
    98 
    99                 update_option('qcc_use_date_meta', (int) $_POST['qcc_use_date_meta']);
    100                 update_option('qcc_date_meta_month', sanitize_text_field($_POST['qcc_date_meta_month']));
    101                 update_option('qcc_date_meta_day', sanitize_text_field($_POST['qcc_date_meta_day']));
    102 
    103                 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>';
    104             }
    105             ?>
    106             <form method="post" action="">
    107                 <h2><?php _e('General Settings', 'qcc'); ?></h2>
    108                 <p><?php _e('These settings apply to the default behaviour of your calendar.', 'qcc'); ?></p>
    109                 <table class="form-table">
    110                     <tbody>
    111                         <tr>
    112                             <th scope="row"><label for="qcc_post_type">(Custom) Post Type</label></th>
    113                             <td>
    114                                 <p>
    115                                     <select name="qcc_post_type" id="qcc_post_type" placeholder="<?php _e('Select a custom post type...', 'qcc'); ?>">
    116                                         <option value="" disabled selected><?php _e('Select a custom post type...', 'qcc'); ?></option>
    117                                         <?php
    118                                         $qcc_post_type = get_option('qcc_post_type');
    119 
    120                                         $args = [
    121                                             'public' => true,
    122                                         ];
    123                                         $post_types = get_post_types($args, 'names');
    124                                         foreach($post_types as $post_type) {
    125                                             if($qcc_post_type == $post_type) {
    126                                                 $selected = 'selected';
    127                                             } else {
    128                                                 $selected = '';
    129                                             }
    130                                             echo '<option value="' . $post_type . '" ' . $selected . '>' . $post_type . '</option>';
    131                                         }
    132                                         ?>
    133                                     </select>
    134                                     <br><small><?php _e('Use this (custom) post type as calendar event type.', 'qcc'); ?></small>
    135                                 </p>
    136                                 <p>
    137                                     <?php
    138                                     $qcc_category = get_option('qcc_category');
    139 
    140                                     $args = [
    141                                         'show_count'        => 1,
    142                                         'hide_empty'        => 0,
    143                                         'hierarchical'      => 1,
    144                                         'name'              => 'qcc_category',
    145                                         'taxonomy'          => 'category',
    146                                         'selected'          => $qcc_category,
    147                                     ];
    148 
    149                                     wp_dropdown_categories($args);
    150                                     ?>
    151                                     <br><small><?php _e('Use this category as calendar event category.', 'qcc'); ?></small>
    152                                 </p>
    153                             </td>
    154                         </tr>
    155                         <tr>
    156                             <th scope="row"><label for="qcc_show_published">Visibility</label></th>
    157                             <td>
    158                                 <p>
    159                                     <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_published" id="qcc_show_published" value="1" <?php if(get_option('qcc_show_published') == 1) echo 'checked'; ?>> <label for="qcc_show_published"><?php _e('Show published posts', 'qcc'); ?></label><br>
    160                                     <small><?php _e('Show published posts in the calendar.', 'qcc'); ?></small><br>
    161 
    162                                     <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_scheduled" id="qcc_show_scheduled" value="1" <?php if(get_option('qcc_show_scheduled') == 1) echo 'checked'; ?>> <label for="qcc_show_scheduled"><?php _e('Show scheduled/future posts', 'qcc'); ?></label><br>
    163                                     <small><?php _e('Show scheduled/future posts in the calendar.', 'qcc'); ?></small>
    164                                 </p>
    165                             </td>
    166                         </tr>
    167                         <tr>
    168                             <th scope="row"><label for="qcc_use_date_meta">Date</label></th>
    169                             <td>
    170                                 <p>
    171                                     <input type="checkbox" class="wppd-ui-toggle" name="qcc_use_date_meta" id="qcc_use_date_meta" value="1" <?php if(get_option('qcc_use_date_meta') == 1) echo 'checked'; ?>> <label for="qcc_use_date_meta"><?php _e('Use custom fields for date', 'qcc'); ?></label>
    172                                     <br><small><?php _e('Use existing custom fields for date (as opposed to post date). Use third party plugins to add custom meta data to your post types. Make sure your existing custom fields are numerical. If this option is checked, it will override the visibility options above.', 'qcc'); ?></small>
    173                                 </p>
    174                                 <p class="qcc_use_date_meta_hidden">
    175                                     <input type="text" class="regular-text" name="qcc_date_meta_month" id="qcc_date_meta_month" value="<?php echo get_option('qcc_date_meta_month'); ?>">
    176                                     <label for="qcc_date_meta_month"><?php _e('Month custom field name', 'qcc'); ?></label>
    177                                     <br><small><?php _e('Your month custom field name.', 'qcc'); ?></small>
    178                                 </p>
    179                                 <p class="qcc_use_date_meta_hidden">
    180                                     <input type="text" class="regular-text" name="qcc_date_meta_day" id="qcc_date_meta_day" value="<?php echo get_option('qcc_date_meta_day'); ?>">
    181                                     <label for="qcc_date_meta_day"><?php _e('Day custom field name', 'qcc'); ?></label>
    182                                     <br><small><?php _e('Your day custom field name.', 'qcc'); ?></small>
    183                                 </p>
    184                             </td>
    185                         </tr>
    186                     </tbody>
    187                 </table>
    188 
    189                 <hr>
    190                 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p>
    191             </form>
    192         <?php } else if($t == 'documentation') { ?>
    193             <h2>Installation</h2>
    194 
    195             <p>After installing the plugin, you need to configure it by selecting several options:</p>
    196             <p>In your <b>Settings</b> tab, Select the desired post type, select the desired category (if post type is 'post') and select which posts you want to show. For an event calendar, the default should be both published and scheduled/future posts.</p>
    197             <p>In case you want to use custom meta fields, the calendar works with preexisting meta fields. Using custom meta fields requires a third-party plugin to add new fields.</p>
    198             <p>After selecting the desired options, pick one of the predefined themes to match your site.</p>
    199             <p>After selecting a theme, you need to match your site's colours with the calendar template.</p>
    200             <p>In your <b>Configurator</b> tab, select the accent colour, the event colour and the background colour for the current day.</p>
    201             <p>When you are done with the settings, use the <code>[qcc-calendar]</code> shortcode in any post, page or widget to show the calendar.</p>
    202 
    203             <h3>Help with shortcodes</h3>
    204             <p>Use the <code>[qcc-calendar]</code> shortcode in any post or page or widget to show the calendar.</p>
    205             <p>Use the <code>[qcc-form]</code> shortcode in any post or page or widget to show the calendar submission form.</p>
    206 
    207             <h3>Help with template tags</h3>
    208             <p>Use the <code>&lt;php echo do_shortcode("[qcc-calendar]"); ?&gt;</code> code in any page template to show the calendar.</p>
    209             <p>Use the <code>&lt;php echo do_shortcode("[qcc-form]"); ?&gt;</code> code in any page template to show the calendar submission form.</p>
    210 
    211             <h3>Help with styling</h3>
    212         <p>Use the included themes to style your calendar. Use the Default or the Flat theme to match your current WordPress theme appearance.</p>
    213 
    214     <h3>Support</h3>
    215           <p>If you encounter any issues or have questions regarding Quick Event Calendar, please <a href="https://wordpress.org/support/plugin/quick-event-calendar/">visit the plugin’s support forum</a>a or <br>
    216           <a href="mailto:support@wpcorner.co">contact us</a> for assistance.
    217        
    218         <?php } ?>
    219     </div>
    220     <?php
     231        </div>
     232    </div>
     233    <style>
     234        .qcc-admin-content {
     235            display: flex;
     236            margin-top: 20px;
     237        }
     238        .qcc-admin-main {
     239            flex: 1;
     240            background-color: #fff;
     241            padding: 20px;
     242            margin-right: 20px;
     243        }
     244        .qcc-admin-sidebar {
     245            width: 300px;
     246        }
     247        .qcc-card {
     248            background-color: #fff;
     249            padding: 20px;
     250            margin-bottom: 20px;
     251        }
     252        .qcc-card h3 {
     253            margin-top: 0;
     254        }
     255        .qcc-card .button {
     256            display: inline-block;
     257            margin-top: 10px;
     258        }
     259        /* New styles to match all buttons with the Documentation button */
     260        .qcc-card .button-primary,
     261        .qcc-card .button-secondary {
     262            background-color: #0085ba;
     263            border-color: #0073aa #006799 #006799;
     264            color: #fff;
     265            text-decoration: none;
     266            text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;
     267        }
     268        .qcc-card .button-primary:hover,
     269        .qcc-card .button-secondary:hover {
     270            background-color: #008ec2;
     271            color: #fff;
     272            border-color: #006799;
     273        }
     274        .star-rating {
     275            /* Add star rating styles here */
     276        }
     277        .qcc-video-container {
     278            position: relative;
     279            padding-bottom: 56.25%; /* 16:9 aspect ratio */
     280            height: 0;
     281            overflow: hidden;
     282            max-width: 100%;
     283        }
     284        .qcc-video-container iframe {
     285            position: absolute;
     286            top: 0;
     287            left: 0;
     288            width: 100%;
     289            height: 100%;
     290        }
     291    </style>
     292    <?php
    221293}
  • quick-event-calendar/trunk/quick-event-calendar.php

    r3114339 r3115037  
    44Plugin URI: https://wpcorner.co/quick-event-calendar/
    55Description: Quick Event Calendar is a very simple, performant and WordPress-integrated event calendar plugin. Quick Event Calendar allows you to add posts, events or any other custom post type to a flexible, responsive calendar which can be placed in a post, page or widget.
    6 Version: 1.4.7
     6Version: 1.4.
    77Author: WP Corner
    88Author URI: https://wpcorner.co
     
    3434define( 'QEC_PLUGIN_URL', WP_PLUGIN_URL . '/' . dirname( plugin_basename( __FILE__ ) ) );
    3535define( 'QEC_PLUGIN_PATH', WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) );
    36 define( 'QEC_VERSION', '1.4.3' );
     36define( 'QEC_VERSION', '1.4.' );
    3737
    3838add_shortcode( 'qcc-calendar', 'qcc_get_calendar' );
  • quick-event-calendar/trunk/readme.txt

    r3114339 r3115037  
    11=== Quick Event Calendar ===
    2 Contributors: wpcornerke, lumiblog
     2Contributors: wpcorner, lumiblog
    33Donate Link: https://wpcorner.co/donate/
    44Tags: event calendar, calendar, event, date, schedule
    55Requires at least: 4.9
    66Tested up to: 6.6
    7 Requires PHP: 7.0
    8 Stable tag: 1.4.7
     7Requires PHP: 7.0
     8Stable tag: 1.4.
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    1616### Quick Event Calendar - Simple, fancy event calendar. ###
    1717
    18 
    1918**Quick Event Calendar** is a very simple, performant, and WordPress-integrated event calendar plugin. Quick Event Calendar allows you to add **posts**, **events** or any other **custom post type** to a flexible, responsive calendar which can be placed in a post, page or widget.
    2019
     
    2928### Quick Event Calendar plugin can be used by: ###
    3029
    31 * **Website Owners / Administrators**: Anyone who runs a WordPress website can use this plugin to display events or custom post types in a calendar format on their site.
     30* **Website Owners / Administrators: Anyone who runs a WordPress website can use this plugin to display events or custom post types in a calendar format on their site.
    3231
    3332* **Event Organizers**: Individuals or organizations that host events can utilize this plugin to create an event calendar on their WordPress website, allowing visitors to easily view and potentially submit events.
     
    5857
    5958### How to Use Quick Event Calendar ###
     59
     60
    6061
    6162* **Install and Activate**: Install and activate the Quick Event Calendar plugin from the WordPress plugin repository.
     
    1071086. Activate the plugin
    108109
     110
     111
     112
     113
     114
     115
     116
     117
     118
     119
     120
     121
     122
     123
     124
     125
     126
     127
     128
     129
     130
     131
     132
     133
     134
     135
    109136== Screenshots ==
    110137
     
    1141414. Calendar showing events on a live page
    115142
    116 == Frequently Asked Questions ==
    117 
    118 = Is the calendar responsive? =
    119 
    120 Yes, Quick Event Calendar is fully responsive and will adapt to different screen sizes and devices, ensuring a seamless user experience.
    121 
    122 = Can I display the calendar on multiple pages? =
    123 
    124 Quick Event Calendar is designed to work on a single page, utilizing AJAX to load events for a specific month. If you need to display the calendar on multiple pages, you can use the provided **shortcodes** or **template tags** on those pages.
    125 
    126 = Can I use custom meta fields with Quick Event Calendar? =
    127 
    128 Yes, Quick Event Calendar works with preexisting custom meta fields. However, you may need to use a third-party plugin to add new custom fields.
    129 
    130 = How do I style the calendar to match my WordPress theme? =
    131 
    132 Quick Event Calendar includes predefined themes that you can select from the plugin settings. Additionally, you can customize the calendar's colors to match your site's branding.
    133 
    134 = Can I display events from custom post types? =
    135 
    136 Yes, Quick Event Calendar allows you to display events or any other custom post type in the calendar.
    137 
    138 = How do I get support? =
    139 
    140 If you encounter any issues or have questions regarding Quick Event Calendar, please visit [the plugin’s support forum](https://wordpress.org/support/plugin/quick-event-calendar/) or [contact us](mailto:support@wpcorner.co) for assistance.
    141 
    142143== Changelog ==
    143144
     145
     146
     147
     148
     149
    144150= 1.4.7 =
    145151* UPDATE: Updated WordPress compatibility
    146152
    147153= 1.4.6 =
    148 * FIX: Fixed link color changing to red in the plugin page.
     154*
    149155
    150156= 1.4.5 =
    151 * FIX: Fixed "contact us" URL in the plugin's dashboard.
     157* UPDATE: Updated readme.txt and plugin info in the main plugin file
     158* TODO: Add WPML compatibility
     159* TODO: Compare JS to https://github.com/fdut/ContactDevOps/blob/22dd6f38bbd591aeb3a5e5653cf2cdcb066ca146/contact-web/ContactWeb/client/js/transports/calendarController.js
     160* TODO: Refactor JS to ES6
     161* TODO: Test form submission and add demo page
     162* TODO: Reconsider custom date field
    152163
    153164= 1.4.4 =
    154 * UPDATE: Event Form Submission redesigned to make form input fields fullwidth.
    155 * UPDATE: Event form submit button text changed to "Add Event"
    156 * UPDATE: Events created through event submission form automatically added to the selected qcc category.
     165* TODO: Compare JS to https://github.com/fdut/ContactDevOps/blob/22dd6f38bbd591aeb3a5e5653cf2cdcb066ca146/contact-web/ContactWeb/client/js/transports/calendarController.js
     166* TODO: Refactor JS to ES6
     167* TODO: Test form submission and add demo page
     168* TODO: Reconsider custom date field
    157169
    158170= 1.4.3 =
Note: See TracChangeset for help on using the changeset viewer.