Plugin Directory

Changeset 3348452


Ignore:
Timestamp:
08/22/2025 06:10:53 AM (6 months ago)
Author:
wpeventmanager
Message:

Release 1.1.0

Location:
wpem-rest-api/trunk
Files:
17 added
8 edited

Legend:

Unmodified
Added
Removed
  • wpem-rest-api/trunk/admin/templates/html-keys-edit.php

    r3262627 r3348452  
    104104                    </td>
    105105                </tr>
     106                <?php
     107                    $saved_mobile_menu = get_user_meta($user_id, '_mobile_menu', true);
     108                    $saved_mobile_menu = is_array($saved_mobile_menu) ? $saved_mobile_menu : [];
     109                ?>
     110                <tr valign="top">
     111                    <th scope="row" class="titledesc">
     112                        <label for="dashboard_menu">
     113                            <?php esc_html_e( 'Mobile Menu', 'wpem-rest-api' ); ?>
     114                        </label>
     115                    </th>
     116                    <td class="forminp">
     117                        <label><input type="checkbox" name="mobile_menu[]" value="dashboard" <?php checked(in_array('dashboard', $saved_mobile_menu)); ?>> <?php esc_html_e( 'Dashboard', 'wpem-rest-api' ); ?></label><br>
     118                        <label><input type="checkbox" name="mobile_menu[]" value="attendees" <?php checked(in_array('attendees', $saved_mobile_menu)); ?>> <?php esc_html_e( 'Attendees', 'wpem-rest-api' ); ?></label><br>
     119                        <label><input type="checkbox" name="mobile_menu[]" value="guest_list" <?php checked(in_array('guest_list', $saved_mobile_menu)); ?>> <?php esc_html_e( 'Guest List', 'wpem-rest-api' ); ?></label><br>
     120                        <label><input type="checkbox" name="mobile_menu[]" value="orders" <?php checked(in_array('orders', $saved_mobile_menu)); ?>> <?php esc_html_e( 'Orders', 'wpem-rest-api' ); ?></label><br>
     121                        <label><input type="checkbox" name="mobile_menu[]" value="arrivals" <?php checked(in_array('arrivals', $saved_mobile_menu)); ?>> <?php esc_html_e( 'Arrivals', 'wpem-rest-api' ); ?></label>
     122                        <p class="description">
     123                            <?php esc_html_e( 'Restrict pages for this key.', 'wpem-rest-api' ); ?>
     124                        </p>
     125                    </td>
     126                </tr>
     127                <tr valign="top">
     128                        <th scope="row" class="titledesc">
     129                            <label for="event_display_option"><?php esc_html_e( 'Event Show By', 'wpem-rest-api' ); ?></label>
     130                        </th>
     131                        <td class="forminp">
     132                            <?php
     133                            $event_show_by = isset( $key_data['event_show_by'] ) ? $key_data['event_show_by'] : 'loggedin'; // Default
     134                            ?>
     135                            <label>
     136                                <input type="radio"  name="event_show_by" value="loggedin" <?php checked( $event_show_by, 'loggedin' ); ?> />
     137                                <?php esc_html_e( 'Show logged-in user events', 'wpem-rest-api' ); ?>
     138                            </label><br/>
     139                            <label>
     140                                <input type="radio"  name="event_show_by" value="selected" <?php checked( $event_show_by, 'selected' ); ?> />
     141                                <?php esc_html_e( 'Show selected events', 'wpem-rest-api' ); ?>
     142                            </label>
     143                            <p class="description"><?php esc_html_e( 'Choose how events are loaded for this key.', 'wpem-rest-api' ); ?></p>
     144                        </td>
     145                    </tr>
     146                    <tr valign="top" id="select-events-row" style="display:none">
     147                    <th scope="row" class="titledesc">
     148                        <label for="select_events"><?php esc_html_e( 'Select Events', 'wpem-rest-api' ); ?></label>
     149                    </th>
     150                    <td class="forminp">
     151                        <?php
     152                            $selected_events = array();
     153                            if (isset($key_data['selected_events'])) {
     154                                if (is_serialized($key_data['selected_events'])) {
     155                                    $selected_events = maybe_unserialize($key_data['selected_events']);
     156                                } elseif (is_array($key_data['selected_events'])) {
     157                                    $selected_events = $key_data['selected_events'];
     158                                }
     159                               
     160                                $selected_events = array_map('absint', (array)$selected_events);
     161                            }
     162                            $events = get_posts(array(
     163                                'post_type'      => 'event_listing',
     164                                'post_status'    => 'publish',
     165                                'posts_per_page' => -1,
     166                                'orderby'        => 'title',
     167                                'order'          => 'ASC',
     168                            ));
     169                        ?>
     170                        <select id="select_events" name="select_events[]" class="event-manager-select-chosen" multiple data-placeholder="<?php esc_attr_e( 'Choose events&hellip;', 'wpem-rest-api' ); ?>">
     171                            <?php foreach ($events as $event) : ?>
     172                                <option value="<?php echo esc_attr($event->ID); ?>" <?php selected(in_array($event->ID, $selected_events), true); ?>>
     173                                    <?php echo esc_html($event->post_title); ?>
     174                                </option>
     175                            <?php endforeach; ?>
     176                        </select>
     177                        <p class="description"><?php esc_html_e('Select one or more events to associate with this key.', 'wpem-rest-api'); ?></p>
     178                    </td>
     179                </tr>
    106180
    107181                <?php if ( 0 !== $key_id ) : ?>
     
    142216                        </td>
    143217                    </tr>
     218                   
    144219                <?php endif ?>
    145220            </tbody>
  • wpem-rest-api/trunk/admin/wpem-rest-api-admin.php

    r3225463 r3348452  
    112112            $date_expires = !empty( $_POST['date_expires'] ) ?  date( 'Y-m-d H:i:s', strtotime( str_replace( '-', '/', $_POST['date_expires'] ) ) ) : null ;
    113113            $restrict_check_in = isset( $_POST['restrict_check_in'] ) ? sanitize_text_field( $_POST['restrict_check_in'] ) : '';
    114 
     114            $event_show_by = isset($_POST['event_show_by']) ? sanitize_text_field($_POST['event_show_by']) : 'loggedin';
     115            $select_events = isset($_POST['select_events']) ? maybe_serialize(array_map('absint', $_POST['select_events'])) : maybe_serialize(array());
     116            $mobile_menu = isset($_POST['mobile_menu']) ? array_map('sanitize_text_field', $_POST['mobile_menu']) : array();
     117           
     118            update_user_meta($user_id, '_mobile_menu', $mobile_menu);
     119           
    115120            // Check if current user can edit other users.
    116121            if( $user_id && ! current_user_can( 'edit_user', $user_id ) ) {
     
    122127            if( 0 < $key_id ) {
    123128                $data = array(
    124                     'user_id'      => $user_id,
    125                     'description'  => $description,
    126                     'permissions'  => $permissions,
    127                     'event_id'     => $event_id,
    128                     'date_expires' => $date_expires,
     129                    'user_id'           => $user_id,
     130                    'description'       => $description,
     131                    'permissions'       => $permissions,
     132                    'event_id'          => $event_id,
     133                    'date_expires'      => $date_expires,
     134                    'event_show_by'     => $event_show_by,
     135                    'selected_events'   => $select_events,
    129136                );
    130137
     
    139146                            '%d',
    140147                            '%s',
     148                            '%s',
     149                            '%s',
    141150                        ),
    142151                    array( '%d' )
     
    147156                $response['consumer_secret'] = '';
    148157                $response['message']         = __( 'API Key updated successfully.', 'wpem-rest-api' );
     158                $response['selected_events'] = maybe_unserialize($select_events);
    149159            } else {
    150160                $app_key = wp_rand();
     
    163173                    'date_created'    => current_time( 'mysql' ) ,
    164174                    'date_expires'    => $date_expires,
     175                    'event_show_by'    => $event_show_by,
     176                    'selected_events' => $select_events,
    165177                );
    166178                $wpdb->insert(
     
    169181                    array(
    170182                        '%d',
     183                        '%s',
     184                        '%s',
    171185                        '%s',
    172186                        '%s',
     
    187201                $response['message']         = __( 'API Key generated successfully. Make sure to copy your new keys now as the secret key will be hidden once you leave this page.', 'wpem-rest-api' );
    188202                $response['revoke_url']      = '<a class="wpem-backend-theme-button" href="' . esc_url( admin_url( 'edit.php?post_type=event_listing&page=wpem-rest-api-settings&tab=api-access' ) ) . '">' . __('I have Copied the Keys', 'wpem-rest-api') . '</a> <br/><br/> <a class="wpem-backend-theme-button wpem-revoke-button" href="' . esc_url(wp_nonce_url(add_query_arg(array( 'revoke-key' => $key_id ), admin_url('edit.php?post_type=event_listing&page=wpem-rest-api-settings&tab=api-access')), 'revoke')) . '">' . __('Revoke key', 'wpem-rest-api') . '</a>';
     203                $response['event_show_by'] = $event_show_by;
     204                $response['selected_events'] = maybe_unserialize($select_events);
    189205            }
    190206        } catch ( Exception $e ) {
  • wpem-rest-api/trunk/admin/wpem-rest-api-keys.php

    r3033558 r3348452  
    144144        $key = $wpdb->get_row(
    145145            $wpdb->prepare(
    146                 "SELECT key_id, user_id, event_id, description, permissions, truncated_key, last_access, date_expires
     146                "SELECT key_id, user_id, event_id, description, permissions, truncated_key, last_access, event_show_by, selected_events, date_expires
    147147                FROM {$wpdb->prefix}wpem_rest_api_keys
    148148                WHERE key_id = %d",
  • wpem-rest-api/trunk/assets/js/admin.js

    r3225463 r3348452  
    55                jQuery("select#key_user").chosen(),
    66                jQuery("select#event_id").chosen(),
    7                 jQuery("input#date_expires").datepicker({ dateFormat: "yy-mm-dd" }),
     7                jQuery("#select_events").chosen();
     8                jQuery("input#date_expires").datepicker({dateFormat: "yy-mm-dd",minDate: 0}),
    89                jQuery("table#app-branding-color-dark").hide(),
    910                jQuery(".wpem-app-branding-mode .app-branding-mode .wpem-light-mode").click(function () {
     
    2526                },
    2627            });
     28           
     29            // show events by radio button toggle
     30            toggleEventsRow();
     31            jQuery('input[name="event_show_by"]').change(function() {
     32               
     33                toggleEventsRow();
     34            });
     35           
     36            function toggleEventsRow() {
     37                if (jQuery('input[name="event_show_by"]:checked').val() === 'selected') {
     38                    jQuery('#select-events-row').show();
     39                    jQuery('#select_events').chosen('destroy').chosen();
     40                } else {
     41                    jQuery('#select-events-row').hide();
     42                }
     43            }
     44            jQuery('.wp_event_manager_upload_file_button').on('click', function(e){
     45                e.preventDefault();
     46                var button = jQuery(this);
     47                var input = button.closest('.file_url').find('#wpem_rest_api_app_logo');
     48                console.log(input);
     49                var custom_uploader = wp.media({
     50                    title: 'Select or Upload Image',
     51                    button: {
     52                        text: 'Use this image'
     53                    },
     54                    multiple: false
     55                })
     56                .on('select', function() {
     57                    var attachment = custom_uploader.state().get('selection').first().toJSON();
     58                    input.val(attachment.url); // Set image URL in input
     59                })
     60                .open();
     61            });
    2762        },
    2863        actions: {
     
    4580                            date_expires: jQuery("#date_expires").val(),
    4681                            restrict_check_in: jQuery('input[name="restrict_check_in"]').attr("checked") ? 0 : 1,
     82                            event_show_by: jQuery('input[name="event_show_by"]:checked').val(),
     83                            select_events: jQuery('#select_events').val() || [],
     84                            mobile_menu: jQuery('input[name="mobile_menu[]"]:checked').map(function () {
     85                                return this.value;
     86                            }).get()
    4787                        },
    4888                        beforeSend: function (e) {},
     
    5696                                        jQuery("p.submit", a.el).empty().append(e.data.revoke_url),
    5797                                        jQuery("#key-fields p.submit", a.el).before(wp.template("api-keys-template")({ consumer_key: e.data.consumer_key, consumer_secret: e.data.consumer_secret, app_key: e.data.app_key })))
    58                                       : (jQuery("#key_description", a.el).val(e.data.description), jQuery("#key_user", a.el).val(e.data.user_id), jQuery("#key_permissions", a.el).val(e.data.permissions)))
     98                                      : (jQuery("#key_description", a.el).val(e.data.description), jQuery("#key_user", a.el).val(e.data.user_id), jQuery("#key_permissions", a.el).val(e.data.permissions),jQuery('input[name="event_show_by"][value="' + e.data.event_show_by + '"]').prop('checked', true),
     99                                    jQuery('#select_events').val(e.data.selected_events).trigger('chosen:updated')))
    59100                                : jQuery("h2, h3", a.el)
    60101                                      .first()
    61102                                      .append('<div class="wpem-api-message error"><p>' + e.errorThrown + "</p></div>");
    62                         },
     103                                     
     104                                if (e.data.mobile_menu) {
     105                                    jQuery('input[name="mobile_menu[]"]').prop('checked', false);
     106                                    e.data.mobile_menu.forEach(function (val) {
     107                                        jQuery('input[name="mobile_menu[]"][value="' + val + '"]').prop('checked', true);
     108                                    });
     109                                }
     110                                    },
    63111                        error: function (e, t, n) {
    64112                            jQuery("h2, h3", a.el)
  • wpem-rest-api/trunk/assets/js/admin.min.js

    r3225463 r3348452  
    1 var WPEMRestAPIAdmin={init:function(){var e;jQuery("#update_api_key").on("click",WPEMRestAPIAdmin.actions.saveApiKey),jQuery("select#key_user").chosen(),jQuery("select#event_id").chosen(),jQuery("input#date_expires").datepicker({dateFormat:"yy-mm-dd"}),jQuery("table#app-branding-color-dark").hide(),jQuery(".wpem-app-branding-mode .app-branding-mode .wpem-light-mode").click((function(){jQuery(".wpem-app-branding-mode").removeClass("wpem-dark-mode").addClass("wpem-light-mode"),jQuery("table#app-branding-color").show(),jQuery("table#app-branding-color-dark").hide()})),jQuery(".wpem-app-branding-mode .app-branding-mode .wpem-dark-mode").click((function(){jQuery("table#app-branding-color").hide(),jQuery("table#app-branding-color-dark").show(),jQuery(".wpem-app-branding-mode").removeClass("wpem-light-mode").addClass("wpem-dark-mode")})),jQuery("#update_app_branding").on("click",WPEMRestAPIAdmin.actions.saveAppBranding),jQuery(".wpem-colorpicker").wpColorPicker({defaultColor:!0,change:function(a,r){a.target,clearTimeout(e),e=setTimeout((function(){WPEMRestAPIAdmin.actions.changeBrightness(a,r.toString())}),500)}})},actions:{saveApiKey:function(e){e.preventDefault();var a=this;jQuery("#api_key_loader").show(),jQuery("#update_api_key").attr("disabled",!0),jQuery.ajax({type:"POST",url:wpem_rest_api_admin.ajaxUrl,data:{action:"save_rest_api_keys",security:wpem_rest_api_admin.save_api_nonce,key_id:jQuery("#key_id").val(),description:jQuery("#key_description").val(),user:jQuery("#key_user").val(),permissions:jQuery("#key_permissions").val(),event_id:jQuery("#event_id").val(),date_expires:jQuery("#date_expires").val(),restrict_check_in:jQuery('input[name="restrict_check_in"]').attr("checked")?0:1},beforeSend:function(e){},success:function(e){e.success?(jQuery("h2, h3",a.el).first().html('<div class="wpem-api-message updated"><p>'+e.data.message+"</p></div>"),0<e.data.consumer_key.length&&0<e.data.consumer_secret.length?(jQuery("#api-keys-options",a.el).parent().remove(),jQuery("p.submit",a.el).empty().append(e.data.revoke_url),jQuery("#key-fields p.submit",a.el).before(wp.template("api-keys-template")({consumer_key:e.data.consumer_key,consumer_secret:e.data.consumer_secret,app_key:e.data.app_key}))):(jQuery("#key_description",a.el).val(e.data.description),jQuery("#key_user",a.el).val(e.data.user_id),jQuery("#key_permissions",a.el).val(e.data.permissions))):jQuery("h2, h3",a.el).first().append('<div class="wpem-api-message error"><p>'+e.errorThrown+"</p></div>")},error:function(e,r,n){jQuery("h2, h3",a.el).first().append('<div class="wpem-api-message error"><p>'+n+"</p></div>")},complete:function(e,a){jQuery("#api_key_loader").hide(),jQuery("#update_api_key").attr("disabled",!1)}})},saveAppBranding:function(e){e.preventDefault();var a="",r=jQuery("#app-branding-color").is(":visible"),n=jQuery("#app-branding-color-dark").is(":visible");r?a="light":n&&(a="dark"),jQuery.ajax({type:"POST",url:wpem_rest_api_admin.ajaxUrl,data:{action:"save_app_branding",security:wpem_rest_api_admin.save_app_branding_nonce,wpem_primary_color:jQuery('input[name="wpem_primary_color"]').val(),wpem_success_color:jQuery('input[name="wpem_success_color"]').val(),wpem_info_color:jQuery('input[name="wpem_info_color"]').val(),wpem_warning_color:jQuery('input[name="wpem_warning_color"]').val(),wpem_danger_color:jQuery('input[name="wpem_danger_color"]').val(),wpem_primary_dark_color:jQuery('input[name="wpem_primary_dark_color"]').val(),wpem_success_dark_color:jQuery('input[name="wpem_success_dark_color"]').val(),wpem_info_dark_color:jQuery('input[name="wpem_info_dark_color"]').val(),wpem_warning_dark_color:jQuery('input[name="wpem_warning_dark_color"]').val(),wpem_danger_dark_color:jQuery('input[name="wpem_danger_dark_color"]').val(),active_mode:a},beforeSend:function(e){},success:function(e){jQuery(".wpem-branding-status").html('<div class="wpem-api-message updated"><p>'+e.data.message+"</p></div>"),jQuery(".update_app_branding_message").html('<div class="update_app_branding_message_update"><i class="wpem-icon-checkmark"></i> Your preferred color for your app branding has been successfully saved.</div>'),"dark"==e.data.mode&&(jQuery("table#app-branding-color").hide(),jQuery("table#app-branding-color-dark").show())},error:function(e,a,r){jQuery(".wpem-branding-status").html('<div class="wpem-api-message error"><p>'+r+"</p></div>"),jQuery(".update_app_branding_message").html('<div class="update_app_branding_message_update"><i class="wpem-icon-cross"></i> Your preferred color for your app branding has not been successfully saved.</div>')},complete:function(e,a){}})},changeBrightness:function(e,a){var r=e.target.name,n=jQuery(e.target).parents("table").attr("id");jQuery.ajax({url:wpem_rest_api_admin.ajaxUrl,type:"POST",dataType:"HTML",data:{action:"change_brighness_color",color:a},success:function(e){const a=e.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#039;/g,"'");jQuery("#"+n+" tbody tr td#"+r).html(a)}})}}};jQuery(document).ready((function(e){WPEMRestAPIAdmin.init()}));
     1var WPEMRestAPIAdmin={init:function(){var e;function a(){"selected"===jQuery('input[name="event_show_by"]:checked').val()?(jQuery("#select-events-row").show(),jQuery("#select_events").chosen("destroy").chosen()):jQuery("#select-events-row").hide()}jQuery("#update_api_key").on("click",WPEMRestAPIAdmin.actions.saveApiKey),jQuery("select#key_user").chosen(),jQuery("select#event_id").chosen(),jQuery("#select_events").chosen(),jQuery("input#date_expires").datepicker({dateFormat:"yy-mm-dd",minDate:0}),jQuery("table#app-branding-color-dark").hide(),jQuery(".wpem-app-branding-mode .app-branding-mode .wpem-light-mode").click(function(){jQuery(".wpem-app-branding-mode").removeClass("wpem-dark-mode").addClass("wpem-light-mode"),jQuery("table#app-branding-color").show(),jQuery("table#app-branding-color-dark").hide()}),jQuery(".wpem-app-branding-mode .app-branding-mode .wpem-dark-mode").click(function(){jQuery("table#app-branding-color").hide(),jQuery("table#app-branding-color-dark").show(),jQuery(".wpem-app-branding-mode").removeClass("wpem-light-mode").addClass("wpem-dark-mode")}),jQuery("#update_app_branding").on("click",WPEMRestAPIAdmin.actions.saveAppBranding),jQuery(".wpem-colorpicker").wpColorPicker({defaultColor:!0,change:function(a,r){a.target,clearTimeout(e),e=setTimeout(function(){WPEMRestAPIAdmin.actions.changeBrightness(a,r.toString())},500)}}),a(),jQuery('input[name="event_show_by"]').change(function(){a()}),jQuery(".wp_event_manager_upload_file_button").on("click",function(e){e.preventDefault();var a=jQuery(this).closest(".file_url").find("#wpem_rest_api_app_logo");console.log(a);var r=wp.media({title:"Select or Upload Image",button:{text:"Use this image"},multiple:!1}).on("select",function(){var e=r.state().get("selection").first().toJSON();a.val(e.url)}).open()})},actions:{saveApiKey:function(e){e.preventDefault();var a=this;jQuery("#api_key_loader").show(),jQuery("#update_api_key").attr("disabled",!0),jQuery.ajax({type:"POST",url:wpem_rest_api_admin.ajaxUrl,data:{action:"save_rest_api_keys",security:wpem_rest_api_admin.save_api_nonce,key_id:jQuery("#key_id").val(),description:jQuery("#key_description").val(),user:jQuery("#key_user").val(),permissions:jQuery("#key_permissions").val(),event_id:jQuery("#event_id").val(),date_expires:jQuery("#date_expires").val(),restrict_check_in:jQuery('input[name="restrict_check_in"]').attr("checked")?0:1,event_show_by:jQuery('input[name="event_show_by"]:checked').val(),select_events:jQuery("#select_events").val()||[],mobile_menu:jQuery('input[name="mobile_menu[]"]:checked').map(function(){return this.value}).get()},beforeSend:function(e){},success:function(e){e.success?(jQuery("h2, h3",a.el).first().html('<div class="wpem-api-message updated"><p>'+e.data.message+"</p></div>"),0<e.data.consumer_key.length&&0<e.data.consumer_secret.length?(jQuery("#api-keys-options",a.el).parent().remove(),jQuery("p.submit",a.el).empty().append(e.data.revoke_url),jQuery("#key-fields p.submit",a.el).before(wp.template("api-keys-template")({consumer_key:e.data.consumer_key,consumer_secret:e.data.consumer_secret,app_key:e.data.app_key}))):(jQuery("#key_description",a.el).val(e.data.description),jQuery("#key_user",a.el).val(e.data.user_id),jQuery("#key_permissions",a.el).val(e.data.permissions),jQuery('input[name="event_show_by"][value="'+e.data.event_show_by+'"]').prop("checked",!0),jQuery("#select_events").val(e.data.selected_events).trigger("chosen:updated"))):jQuery("h2, h3",a.el).first().append('<div class="wpem-api-message error"><p>'+e.errorThrown+"</p></div>"),e.data.mobile_menu&&(jQuery('input[name="mobile_menu[]"]').prop("checked",!1),e.data.mobile_menu.forEach(function(e){jQuery('input[name="mobile_menu[]"][value="'+e+'"]').prop("checked",!0)}))},error:function(e,r,n){jQuery("h2, h3",a.el).first().append('<div class="wpem-api-message error"><p>'+n+"</p></div>")},complete:function(e,a){jQuery("#api_key_loader").hide(),jQuery("#update_api_key").attr("disabled",!1)}})},saveAppBranding:function(e){e.preventDefault();var a="",r=jQuery("#app-branding-color").is(":visible"),n=jQuery("#app-branding-color-dark").is(":visible");r?a="light":n&&(a="dark"),jQuery.ajax({type:"POST",url:wpem_rest_api_admin.ajaxUrl,data:{action:"save_app_branding",security:wpem_rest_api_admin.save_app_branding_nonce,wpem_primary_color:jQuery('input[name="wpem_primary_color"]').val(),wpem_success_color:jQuery('input[name="wpem_success_color"]').val(),wpem_info_color:jQuery('input[name="wpem_info_color"]').val(),wpem_warning_color:jQuery('input[name="wpem_warning_color"]').val(),wpem_danger_color:jQuery('input[name="wpem_danger_color"]').val(),wpem_primary_dark_color:jQuery('input[name="wpem_primary_dark_color"]').val(),wpem_success_dark_color:jQuery('input[name="wpem_success_dark_color"]').val(),wpem_info_dark_color:jQuery('input[name="wpem_info_dark_color"]').val(),wpem_warning_dark_color:jQuery('input[name="wpem_warning_dark_color"]').val(),wpem_danger_dark_color:jQuery('input[name="wpem_danger_dark_color"]').val(),active_mode:a},beforeSend:function(e){},success:function(e){jQuery(".wpem-branding-status").html('<div class="wpem-api-message updated"><p>'+e.data.message+"</p></div>"),jQuery(".update_app_branding_message").html('<div class="update_app_branding_message_update"><i class="wpem-icon-checkmark"></i> Your preferred color for your app branding has been successfully saved.</div>'),"dark"==e.data.mode&&(jQuery("table#app-branding-color").hide(),jQuery("table#app-branding-color-dark").show())},error:function(e,a,r){jQuery(".wpem-branding-status").html('<div class="wpem-api-message error"><p>'+r+"</p></div>"),jQuery(".update_app_branding_message").html('<div class="update_app_branding_message_update"><i class="wpem-icon-cross"></i> Your preferred color for your app branding has not been successfully saved.</div>')},complete:function(e,a){}})},changeBrightness:function(e,a){var r=e.target.name,n=jQuery(e.target).parents("table").attr("id");jQuery.ajax({url:wpem_rest_api_admin.ajaxUrl,type:"POST",dataType:"HTML",data:{action:"change_brighness_color",color:a},success:function(e){const a=e.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#039;/g,"'");jQuery("#"+n+" tbody tr td#"+r).html(a)}})}}};jQuery(document).ready(function(e){WPEMRestAPIAdmin.init()});
  • wpem-rest-api/trunk/readme.txt

    r3290211 r3348452  
    1 === WPEM - REST API ===
     1=== WP Event Manager - REST API ===
    22
    33Contributors: wpeventmanager,ashokdudhat,krinay
    44Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=55FRYATTFLA5N
    55Tags: event manager, Event, events, event manager api , listings
    6 Requires at least: 6.0.1
     6Requires at least: 6.5.1
    77Tested up to: 6.8
    8 Stable tag: 1.0.10
     8Stable tag: 1.1.0
    99Requires PHP: 8.0.0
    1010License: GPLv3
     
    121121
    122122
     123= 1.1.0 [ 19th August 2025 ] =
     124
     125Fixed : Change the Plugin name
     126Fixed : After password change the user will auto logout from mobile app
     127Fixed : Without Active license some section of the app will not work
     128Added : Match making functionality
     129
    123130= 1.0.10 [ 09th May 2025 ] =
    124131
  • wpem-rest-api/trunk/wpem-rest-api-functions.php

    r3290211 r3348452  
    278278            'wp-event-manager-registrations' => 'WP Event Manager Registrations',
    279279            'wpem-guests' => 'WP Event Manager Guests',
     280            'wpem-speaker-schedule' => 'WP Event Manager Speaker & Schedule'
    280281        ) );
    281282
     
    402403        // Get the authorization header
    403404        $headers = getallheaders();
    404         $token = isset($headers['Authorization']) ? trim(str_replace('Bearer', '', $headers['Authorization'])) : '';
    405 
     405        $token = '';
     406
     407        // First try standard header
     408        if (isset($headers['Authorization'])) {
     409            $token = trim(str_replace('Bearer', '', $headers['Authorization']));
     410        }
     411        // Try for some server environments
     412        elseif (isset($_SERVER['HTTP_AUTHORIZATION'])) {
     413            $token = trim(str_replace('Bearer', '', $_SERVER['HTTP_AUTHORIZATION']));
     414        }
     415        // NGINX or fastcgi_pass may use this
     416        elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
     417            $token = trim(str_replace('Bearer', '', $_SERVER['REDIRECT_HTTP_AUTHORIZATION']));
     418        }
    406419        if(empty($token)) {
    407420            return WPEM_REST_CRUD_Controller::prepare_error_for_response(401);
  • wpem-rest-api/trunk/wpem-rest-api.php

    r3290211 r3348452  
    11<?php
    22/**
    3 * Plugin Name: WPEM - REST API
     3* Plugin Name: WP Event Manager - REST API
    44* Plugin URI: http://www.wp-eventmanager.com/plugins/
    55*
     
    1010* Text Domain: wpem-rest-api
    1111* Domain Path: /languages
    12 * Version: 1.0.10
     12* Version: 1.1.0
    1313* Since: 1.0.0
    1414*
    15 * Requires WordPress Version at least: 6.0.1
     15* Requires WordPress Version at least: 6.5.1
    1616* Copyright: 2019 WP Event Manager
    1717* License: GNU General Public License v3.0
     
    4141
    4242        // Define constants
    43         define( 'WPEM_REST_API_VERSION', '1.0.10' );
     43        define( 'WPEM_REST_API_VERSION', '1.1.0' );
    4444        define( 'WPEM_REST_API_FILE', __FILE__ );
    4545        define( 'WPEM_REST_API_PLUGIN_DIR', untrailingslashit( plugin_dir_path(__FILE__ ) ) );
     
    5959
    6060        include 'includes/wpem-rest-api-dashboard.php';
    61         include 'includes/rest-api/wpem-rest-conroller.php';
    62         include 'includes/rest-api/wpem-rest-posts-conroller.php';
    63         include 'includes/rest-api/wpem-rest-crud-controller.php';
    64         include 'includes/rest-api/wpem-rest-authentication.php';       
    65         include 'includes/rest-api/wpem-rest-events-controller.php';
    66         include 'includes/rest-api/wpem-rest-app-branding.php';
    67         include 'includes/rest-api/wpem-rest-ecosystem-controller.php';
     61        include 'includes/wpem-rest-conroller.php';
     62        include 'includes/wpem-rest-posts-conroller.php';
     63        include 'includes/wpem-rest-crud-controller.php';
     64        include 'includes/wpem-rest-authentication.php';       
     65        include 'includes/wpem-rest-events-controller.php';
     66        include 'includes/wpem-rest-app-branding.php';
     67        include 'includes/wpem-rest-ecosystem-controller.php';
     68
     69        // match making api
     70        include 'includes/wpem-rest-matchmaking-profile.php';
     71        include 'includes/wpem-rest-matchmaking-get-texonomy.php';
     72        include 'includes/wpem-rest-matchmaking-user-messages.php';
     73        include 'includes/wpem-rest-matchmaking-filter-users.php';
     74        include 'includes/wpem-rest-matchmaking-user-settings.php';
     75        include 'includes/wpem-rest-matchmaking-create-meetings.php';
     76        include 'includes/wpem-rest-matchmaking-user-registred-events.php';
    6877
    6978        // Activate
     
    118127            truncated_key char(7) NOT NULL,
    119128            last_access datetime NULL default null,
     129            event_show_by varchar(20) NULL default 'loggedin',
     130            selected_events longtext NULL,
    120131            date_created datetime NULL default null,
    121132            date_expires datetime NULL default null,
     
    126137
    127138        dbDelta( $sql );
     139       
     140        // Check if we need to alter existing table
     141        $table_name = $wpdb->prefix . 'wpem_rest_api_keys';
     142        $columns = $wpdb->get_col("DESC {$table_name}", 0);
     143       
     144        // Add event_show_by column if it doesn't exist
     145        if (!in_array('event_show_by', $columns)) {
     146            $wpdb->query("ALTER TABLE {$table_name} ADD COLUMN event_show_by varchar(20) NULL DEFAULT 'loggedin'");
     147        }
     148       
     149        // Add selected_events column if it doesn't exist
     150        if (!in_array('selected_events', $columns)) {
     151            $wpdb->query("ALTER TABLE {$table_name} ADD COLUMN selected_events longtext NULL");
     152        }
    128153
    129154        update_option( 'wpem_rest_api_version', WPEM_REST_API_VERSION );
Note: See TracChangeset for help on using the changeset viewer.