eventsmanager icon

Temporary Fix: Calendar when using WP in other language

eventsmanager | PRO | 03/05/26 06:28:22 AM UTC (Edited) | 0 ⭐ | 4282 👁️ | Never ⏰ | []
text |

3.32 KB

|

None

|

0 👍

/

0 👎

<?php
 /**
 * Temporary fix for Events Manager calendar month display issue
 * GTranslate / multilingual safe
 */
  add_action( 'wp_footer', 'mf_fix_em_calendar_month_display', 999);
function mf_fix_em_calendar_month_display() {
    ?>
     <script>
 	var added = false;
     (function($) {
         function getLocalizedMonthYear(year, month) {
            try {
                 var locale = document.documentElement.lang || navigator.language || 'nl-NL';
                 var date = new Date(year, month - 1, 1);
                 return new Intl.DateTimeFormat(locale, {
                    month: 'short',
                    year: 'numeric'
                }).format(date);
              } catch (e) {
                return year + '-' + month;
            }
        }
           function forceFixCalendarMonth() {
 			try {
             $('.em-calendar').each(function() {
                 var $cal  = $(this);
                var month = parseInt($cal.attr('data-month'), 10);
                var year  = parseInt($cal.attr('data-year'), 10);
                 if (!month || !year) return;
                 var monthPadded = (month < 10 ? '0' + month : month);
                var correctValue = year + '-' + monthPadded;
                var correctDisplay = getLocalizedMonthYear(year, month);
                var $input = $cal.find('.em-month-picker');
                 if (!$input.length) return;
                 // Update input value & attribute
                 $input.val(correctValue);
                $input.attr('data-month-value', correctDisplay);
                  // Sync Flatpickr if present
                if ($input[0] && $input[0]._flatpickr) {
                    $input[0]._flatpickr.setDate(correctValue + '-01', false, "Y-m-d");
                    $input[0]._flatpickr.redraw();
                }
                 // Visible month label
                 var $monthDiv     = $cal.find('.month');
                var $monthDisplay = $monthDiv.find('.month-display-text');
                 if ($monthDisplay.length === 0 ) {
  					$monthDiv.find('form').prepend( '<input type="text" class="em-month-picker flatpickr-input select-toggle active" value="'+correctDisplay.toUpperCase()+'" data-month-value="'+correctValue+'" style="width: 132.917px !important;" readonly="readonly">'  );
                    //$monthDiv.find('form').prepend( '' + correctDisplay + ''  );
                     // Hide original input
                    $input.css({
                        position: 'absolute',
                        opacity: 0,
                        width: 0,
                        height: 0
                    });
                  } else {
                    //$monthDisplay.text(correctDisplay);
                }
             });
  			} catch (e) {
                console.log( "test " + e );
            }
         }
          $(document).ready(function() {
            //setTimeout(forceFixCalendarMonth, 150);
            setTimeout(forceFixCalendarMonth, 600);
            //setTimeout(forceFixCalendarMonth, 1200);
        });
          //Events Manager AJAX reloads
        $(document).on('em_calendar_load em_calendar_loaded', forceFixCalendarMonth);
     })(jQuery);
     </script>
     <?php
  }

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎