- סטטוס
- ממתין למפתח
- תוסף/ערכת עיצוב קשורים
- WP Event Manager
- תגיות נושא
- Compatibility
סקירה כללית של התקלה
בעת יצירת אירוע עם מגבלת הרשמה באמצעות WP Event Manager והתוסף הנלווה שלו WP Event Manager – Registrations, מגבלת ההרשמה אינה מסונכרנת בין השפות.
פתרון עוקף
אנא ודא שיש ברשותך גיבוי מלא של האתר שלך לפני שתמשיך.
- פתח את הקובץ …/wp-content/plugins/wp-event-manager-registrations/wp-event-manager-registrations-functions.php.
- חפש את שורה 497.
- החלף את:
if(!function_exists('get_event_registration_count')) { /** * Get number of registrations for a event * @param int $event_id * @return int */ function get_event_registration_count($event_id) { return sizeof(get_posts(array( 'post_type' => 'event_registration', 'post_status' => array_merge(array_keys(get_event_registration_statuses()), array('publish')), 'posts_per_page' => -1, 'fields' => 'ids', 'post_parent' => $event_id ))); } } - ב:
if(!function_exists('get_event_registration_count')) { /** * Get number of registrations for a event * @param int $event_id * @return int */ function get_event_registration_count($event_id) { // WPML workaround for compsupp-7562 - Part I $element_type = 'post_' . get_post_type( $event_id ); $trid = apply_filters( 'wpml_element_trid', null, $event_id, $element_type ); $translations = apply_filters( 'wpml_get_element_translations', null, $trid , $element_type ); // Extract the IDs of the translated posts $event_ids = array_map(function($translation) { return $translation->element_id; }, $translations); // Get event registrations for all translations return sizeof(get_posts(array( 'post_type' => 'event_registration', 'post_status' => array_merge(array_keys(get_event_registration_statuses()), array('publish')), 'posts_per_page' => -1, 'fields' => 'ids', 'post_parent__in' => $event_ids // Get all registrations for the event IDs ))); } } - לאחר מכן, חפש את שורה 595.
- החלף את:
if(!function_exists('user_has_registered_for_event')) { /** * See if a user has already appled for a event * @param int $user_id, $event_id * @return int */ function user_has_registered_for_event($user_id, $event_id) { if(!$user_id) { return false; } return sizeof(get_posts(array( 'post_type' => 'event_registration', 'post_status' => array_merge(array_keys(get_event_registration_statuses()), array('publish')), 'posts_per_page' => 1, 'fields' => 'ids', 'post_parent' => $event_id, 'meta_query' => array( array( 'key' => '_attendee_user_id', 'value' => absint($user_id) ) ) ))); } } - ב:
if(!function_exists('user_has_registered_for_event')) { /** * See if a user has already appled for a event * @param int $user_id, $event_id * @return int */ function user_has_registered_for_event($user_id, $event_id) { if(!$user_id) { return false; } // WPML Workaround for compsupp-7562 - Part II $element_type = 'post_' . get_post_type( $event_id ); $trid = apply_filters( 'wpml_element_trid', null, $event_id, $element_type ); $translations = apply_filters( 'wpml_get_element_translations', null, $trid , $element_type ); // Extract the IDs of the translated posts $event_ids = array_map(function($translation) { return $translation->element_id; }, $translations); // Check if the user is registered for any translation of the event return sizeof(get_posts(array( 'post_type' => 'event_registration', 'post_status' => array_merge(array_keys(get_event_registration_statuses()), array('publish')), 'posts_per_page' => 1, 'fields' => 'ids', 'post_parent__in' => $event_ids, // Check all event translations 'meta_query' => array( array( 'key' => '_attendee_user_id', 'value' => absint($user_id) ) ) ))) > 0; } }