calendar' ), ); /** * Filter choices available for location accessibility services. * * @hook mc_location_access_choices * * @param {array} Array of location choices (numeric keys, string values.) * * @return {array} */ return apply_filters( 'mc_location_access_choices', $location_access ); } /** * Get a specific field with an location ID * * @param string $field Specific field to get. * @param int $id Location ID. * * @return string value as string. */ function mc_location_data( $field, $id ) { if ( $id ) { $mcdb = mc_is_remote_db(); $sql = $mcdb->prepare( "SELECT $field FROM " . my_calendar_locations_table() . ' WHERE location_id = %d', $id ); $result = $mcdb->get_var( $sql ); return (string) $result; } return ''; } /** * Get options list of locations to choose from * * @param object|false $location Selected location object or false if nothing selected. * * @return string set of option elements */ function mc_location_select( $location = false ) { // Grab all locations and list them. $list = ''; $locs = mc_get_locations( 'select-locations' ); foreach ( $locs as $loc ) { // If label is empty, display street. if ( '' === (string) $loc->location_label ) { $label = $loc->location_street; } else { $label = $loc->location_label; } // If neither label nor street, skip. if ( '' === (string) $label ) { continue; } $l = ''; $list .= $l; } return '' . $list; } /** * Get list of locations (IDs and labels) * * @param string|array $args array of relevant arguments. If string, get all locations and set context. * * @return array locations (IDs and labels only) */ function mc_get_locations( $args ) { global $wpdb; if ( is_array( $args ) ) { $orderby = ( isset( $args['orderby'] ) ) ? $args['orderby'] : 'location_label'; $order = ( isset( $args['order'] ) ) ? $args['order'] : 'ASC'; $where = ( isset( $args['where'] ) ) ? $args['where'] : '1'; $is = ( isset( $args['is'] ) ) ? $args['is'] : '1'; } else { $orderby = 'location_label'; $order = 'ASC'; $where = '1'; $is = '1'; } if ( ! ( 'ASC' === $order || 'DESC' === $order ) ) { // Prevent invalid order parameters. $order = 'ASC'; } $valid_args = array( 'location_id', 'location_label', 'location_street', 'location_street2', 'location_city', 'location_state', 'location_postcode', 'location_region', 'location_url', 'location_country', 'location_longitude', 'location_latitude', 'location_zoom', 'location_phone', 'location_phone2', 'location_access' ); if ( ! in_array( $orderby, $valid_args, true ) ) { // Prevent invalid order columns. $orderby = 'location_label'; } $results = $wpdb->get_results( $wpdb->prepare( 'SELECT location_id,location_label,location_street FROM ' . my_calendar_locations_table() . ' WHERE ' . esc_sql( $where ) . ' = %s ORDER BY ' . esc_sql( $orderby ) . ' ' . esc_sql( $order ), $is ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared /** * Filter returned results when searching locations. * * @hook mc_filter_location_results * * @param {array} $results Array of IDs or objects. * @param {array} $args Query arguments. * * @return {array} */ return apply_filters( 'mc_filter_location_results', $results, $args ); } /** * Search location titles. * * @param string $query Location query. * * @return array locations */ function mc_core_search_locations( $query = '' ) { global $wpdb; $search = ''; $db_type = mc_get_db_type(); $query = esc_sql( $query ); $length = strlen( $query ); if ( '' !== $query ) { // Fulltext is supported in InnoDB since MySQL 5.6; minimum required by WP is 5.0 as of WP 5.5. // 37% of installs still below 5.6 as of 11/30/2020. // 2.4% of installs below 5.6 as of 7/14/2022. if ( 'MyISAM' === $db_type && $length > 3 ) { /** * Filter the fields used to handle MATCH queries in location searches on MyISAM dbs. * * @hook mc_search_fields * * @param {string} $fields Table columns in locations table. * * @return {string} */ $search = ' WHERE MATCH(' . apply_filters( 'mc_search_fields', 'location_label' ) . ") AGAINST ( '$query' IN BOOLEAN MODE ) "; } else { $search = " WHERE location_label LIKE '%$query%' "; } } else { $search = ''; } $locations = $wpdb->get_results( 'SELECT SQL_CALC_FOUND_ROWS location_id, location_label FROM ' . my_calendar_locations_table() . " $search ORDER BY location_label ASC" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared,WordPress.DB.PreparedSQL.NotPrepared return $locations; } /** * Search location titles. * * @param string $query Location query. * * @return array locations */ function mc_get_countries( $query = '' ) { global $wpdb; $search = ''; $db_type = mc_get_db_type(); $query = esc_sql( $query ); $length = strlen( $query ); if ( '' !== $query ) { // Fulltext is supported in InnoDB since MySQL 5.6; minimum required by WP is 5.0 as of WP 5.5. // 37% of installs still below 5.6 as of 11/30/2020. // 2.4% of installs below 5.6 as of 7/14/2022. if ( 'MyISAM' === $db_type && $length > 3 ) { /** * Filter the fields used to handle MATCH queries in location searches on MyISAM dbs. * * @hook mc_search_fields * * @param {string} $fields Table columns in locations table. * * @return {string} */ $search = " WHERE MATCH(location_country) AGAINST ( '$query' IN BOOLEAN MODE ) "; } else { $search = " WHERE location_country LIKE '%$query%' "; } } else { $search = ''; } $locations = $wpdb->get_results( 'SELECT DISTINCT location_country FROM ' . my_calendar_locations_table() . " $search ORDER BY location_country ASC", 'ARRAY_A' ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared,WordPress.DB.PreparedSQL.NotPrepared $return = array(); foreach ( $locations as $location ) { $return[] = $location['location_country']; } return $return; } /** * Return the results of a search for countries. * * @param string $query A search query. * * @return array */ function mc_default_countries( $query = '' ) { $countries = array( 'AF' => __( 'Afghanistan', 'my-calendar' ), 'AL' => __( 'Albania', 'my-calendar' ), 'DZ' => __( 'Algeria', 'my-calendar' ), 'AS' => __( 'American Samoa', 'my-calendar' ), 'AD' => __( 'Andorra', 'my-calendar' ), 'AO' => __( 'Angola', 'my-calendar' ), 'AI' => __( 'Anguilla', 'my-calendar' ), 'AQ' => __( 'Antarctica', 'my-calendar' ), 'AG' => __( 'Antigua and Barbuda', 'my-calendar' ), 'AR' => __( 'Argentina', 'my-calendar' ), 'AM' => __( 'Armenia', 'my-calendar' ), 'AW' => __( 'Aruba', 'my-calendar' ), 'AU' => __( 'Australia', 'my-calendar' ), 'AT' => __( 'Austria', 'my-calendar' ), 'AZ' => __( 'Azerbaijan', 'my-calendar' ), 'BS' => __( 'Bahamas', 'my-calendar' ), 'BH' => __( 'Bahrain', 'my-calendar' ), 'BD' => __( 'Bangladesh', 'my-calendar' ), 'BB' => __( 'Barbados', 'my-calendar' ), 'BY' => __( 'Belarus', 'my-calendar' ), 'BE' => __( 'Belgium', 'my-calendar' ), 'BZ' => __( 'Belize', 'my-calendar' ), 'BJ' => __( 'Benin', 'my-calendar' ), 'BM' => __( 'Bermuda', 'my-calendar' ), 'BT' => __( 'Bhutan', 'my-calendar' ), 'BO' => __( 'Bolivia', 'my-calendar' ), 'BA' => __( 'Bosnia and Herzegovina', 'my-calendar' ), 'BW' => __( 'Botswana', 'my-calendar' ), 'BV' => __( 'Bouvet Island', 'my-calendar' ), 'BR' => __( 'Brazil', 'my-calendar' ), 'BQ' => __( 'British Antarctic Territory', 'my-calendar' ), 'IO' => __( 'British Indian Ocean Territory', 'my-calendar' ), 'VG' => __( 'British Virgin Islands', 'my-calendar' ), 'BN' => __( 'Brunei', 'my-calendar' ), 'BG' => __( 'Bulgaria', 'my-calendar' ), 'BF' => __( 'Burkina Faso', 'my-calendar' ), 'BI' => __( 'Burundi', 'my-calendar' ), 'KH' => __( 'Cambodia', 'my-calendar' ), 'CM' => __( 'Cameroon', 'my-calendar' ), 'CA' => __( 'Canada', 'my-calendar' ), 'CT' => __( 'Canton and Enderbury Islands', 'my-calendar' ), 'CV' => __( 'Cape Verde', 'my-calendar' ), 'KY' => __( 'Cayman Islands', 'my-calendar' ), 'CF' => __( 'Central African Republic', 'my-calendar' ), 'TD' => __( 'Chad', 'my-calendar' ), 'CL' => __( 'Chile', 'my-calendar' ), 'CN' => __( 'China', 'my-calendar' ), 'CX' => __( 'Christmas Island', 'my-calendar' ), 'CC' => __( 'Cocos [Keeling] Islands', 'my-calendar' ), 'CO' => __( 'Colombia', 'my-calendar' ), 'KM' => __( 'Comoros', 'my-calendar' ), 'CG' => __( 'Congo - Brazzaville', 'my-calendar' ), 'CD' => __( 'Congo - Kinshasa', 'my-calendar' ), 'CK' => __( 'Cook Islands', 'my-calendar' ), 'CR' => __( 'Costa Rica', 'my-calendar' ), 'HR' => __( 'Croatia', 'my-calendar' ), 'CU' => __( 'Cuba', 'my-calendar' ), 'CY' => __( 'Cyprus', 'my-calendar' ), 'CZ' => __( 'Czech Republic', 'my-calendar' ), 'CI' => __( 'Côte d’Ivoire', 'my-calendar' ), 'DK' => __( 'Denmark', 'my-calendar' ), 'DJ' => __( 'Djibouti', 'my-calendar' ), 'DM' => __( 'Dominica', 'my-calendar' ), 'DO' => __( 'Dominican Republic', 'my-calendar' ), 'NQ' => __( 'Dronning Maud Land', 'my-calendar' ), 'DD' => __( 'East Germany', 'my-calendar' ), 'EC' => __( 'Ecuador', 'my-calendar' ), 'EG' => __( 'Egypt', 'my-calendar' ), 'SV' => __( 'El Salvador', 'my-calendar' ), 'GQ' => __( 'Equatorial Guinea', 'my-calendar' ), 'ER' => __( 'Eritrea', 'my-calendar' ), 'EE' => __( 'Estonia', 'my-calendar' ), 'ET' => __( 'Ethiopia', 'my-calendar' ), 'FK' => __( 'Falkland Islands', 'my-calendar' ), 'FO' => __( 'Faroe Islands', 'my-calendar' ), 'FJ' => __( 'Fiji', 'my-calendar' ), 'FI' => __( 'Finland', 'my-calendar' ), 'FR' => __( 'France', 'my-calendar' ), 'GF' => __( 'French Guiana', 'my-calendar' ), 'PF' => __( 'French Polynesia', 'my-calendar' ), 'TF' => __( 'French Southern Territories', 'my-calendar' ), 'FQ' => __( 'French Southern and Antarctic Territories', 'my-calendar' ), 'GA' => __( 'Gabon', 'my-calendar' ), 'GM' => __( 'Gambia', 'my-calendar' ), 'GE' => __( 'Georgia', 'my-calendar' ), 'DE' => __( 'Germany', 'my-calendar' ), 'GH' => __( 'Ghana', 'my-calendar' ), 'GI' => __( 'Gibraltar', 'my-calendar' ), 'GR' => __( 'Greece', 'my-calendar' ), 'GL' => __( 'Greenland', 'my-calendar' ), 'GD' => __( 'Grenada', 'my-calendar' ), 'GP' => __( 'Guadeloupe', 'my-calendar' ), 'GU' => __( 'Guam', 'my-calendar' ), 'GT' => __( 'Guatemala', 'my-calendar' ), 'GG' => __( 'Guernsey', 'my-calendar' ), 'GN' => __( 'Guinea', 'my-calendar' ), 'GW' => __( 'Guinea-Bissau', 'my-calendar' ), 'GY' => __( 'Guyana', 'my-calendar' ), 'HT' => __( 'Haiti', 'my-calendar' ), 'HM' => __( 'Heard Island and McDonald Islands', 'my-calendar' ), 'HN' => __( 'Honduras', 'my-calendar' ), 'HK' => __( 'Hong Kong SAR China', 'my-calendar' ), 'HU' => __( 'Hungary', 'my-calendar' ), 'IS' => __( 'Iceland', 'my-calendar' ), 'IN' => __( 'India', 'my-calendar' ), 'ID' => __( 'Indonesia', 'my-calendar' ), 'IR' => __( 'Iran', 'my-calendar' ), 'IQ' => __( 'Iraq', 'my-calendar' ), 'IE' => __( 'Ireland', 'my-calendar' ), 'IM' => __( 'Isle of Man', 'my-calendar' ), 'IL' => __( 'Israel', 'my-calendar' ), 'IT' => __( 'Italy', 'my-calendar' ), 'JM' => __( 'Jamaica', 'my-calendar' ), 'JP' => __( 'Japan', 'my-calendar' ), 'JE' => __( 'Jersey', 'my-calendar' ), 'JT' => __( 'Johnston Island', 'my-calendar' ), 'JO' => __( 'Jordan', 'my-calendar' ), 'KZ' => __( 'Kazakhstan', 'my-calendar' ), 'KE' => __( 'Kenya', 'my-calendar' ), 'KI' => __( 'Kiribati', 'my-calendar' ), 'KW' => __( 'Kuwait', 'my-calendar' ), 'KG' => __( 'Kyrgyzstan', 'my-calendar' ), 'LA' => __( 'Laos', 'my-calendar' ), 'LV' => __( 'Latvia', 'my-calendar' ), 'LB' => __( 'Lebanon', 'my-calendar' ), 'LS' => __( 'Lesotho', 'my-calendar' ), 'LR' => __( 'Liberia', 'my-calendar' ), 'LY' => __( 'Libya', 'my-calendar' ), 'LI' => __( 'Liechtenstein', 'my-calendar' ), 'LT' => __( 'Lithuania', 'my-calendar' ), 'LU' => __( 'Luxembourg', 'my-calendar' ), 'MO' => __( 'Macau SAR China', 'my-calendar' ), 'MK' => __( 'Macedonia', 'my-calendar' ), 'MG' => __( 'Madagascar', 'my-calendar' ), 'MW' => __( 'Malawi', 'my-calendar' ), 'MY' => __( 'Malaysia', 'my-calendar' ), 'MV' => __( 'Maldives', 'my-calendar' ), 'ML' => __( 'Mali', 'my-calendar' ), 'MT' => __( 'Malta', 'my-calendar' ), 'MH' => __( 'Marshall Islands', 'my-calendar' ), 'MQ' => __( 'Martinique', 'my-calendar' ), 'MR' => __( 'Mauritania', 'my-calendar' ), 'MU' => __( 'Mauritius', 'my-calendar' ), 'YT' => __( 'Mayotte', 'my-calendar' ), 'FX' => __( 'Metropolitan France', 'my-calendar' ), 'MX' => __( 'Mexico', 'my-calendar' ), 'FM' => __( 'Micronesia', 'my-calendar' ), 'MI' => __( 'Midway Islands', 'my-calendar' ), 'MD' => __( 'Moldova', 'my-calendar' ), 'MC' => __( 'Monaco', 'my-calendar' ), 'MN' => __( 'Mongolia', 'my-calendar' ), 'ME' => __( 'Montenegro', 'my-calendar' ), 'MS' => __( 'Montserrat', 'my-calendar' ), 'MA' => __( 'Morocco', 'my-calendar' ), 'MZ' => __( 'Mozambique', 'my-calendar' ), 'MM' => __( 'Myanmar [Burma]', 'my-calendar' ), 'NA' => __( 'Namibia', 'my-calendar' ), 'NR' => __( 'Nauru', 'my-calendar' ), 'NP' => __( 'Nepal', 'my-calendar' ), 'NL' => __( 'Netherlands', 'my-calendar' ), 'AN' => __( 'Netherlands Antilles', 'my-calendar' ), 'NT' => __( 'Neutral Zone', 'my-calendar' ), 'NC' => __( 'New Caledonia', 'my-calendar' ), 'NZ' => __( 'New Zealand', 'my-calendar' ), 'NI' => __( 'Nicaragua', 'my-calendar' ), 'NE' => __( 'Niger', 'my-calendar' ), 'NG' => __( 'Nigeria', 'my-calendar' ), 'NU' => __( 'Niue', 'my-calendar' ), 'NF' => __( 'Norfolk Island', 'my-calendar' ), 'KP' => __( 'North Korea', 'my-calendar' ), 'VD' => __( 'North Vietnam', 'my-calendar' ), 'MP' => __( 'Northern Mariana Islands', 'my-calendar' ), 'NO' => __( 'Norway', 'my-calendar' ), 'OM' => __( 'Oman', 'my-calendar' ), 'PC' => __( 'Pacific Islands Trust Territory', 'my-calendar' ), 'PK' => __( 'Pakistan', 'my-calendar' ), 'PW' => __( 'Palau', 'my-calendar' ), 'PS' => __( 'Palestinian Territories', 'my-calendar' ), 'PA' => __( 'Panama', 'my-calendar' ), 'PZ' => __( 'Panama Canal Zone', 'my-calendar' ), 'PG' => __( 'Papua New Guinea', 'my-calendar' ), 'PY' => __( 'Paraguay', 'my-calendar' ), 'YD' => __( 'People\'s Democratic Republic of Yemen', 'my-calendar' ), 'PE' => __( 'Peru', 'my-calendar' ), 'PH' => __( 'Philippines', 'my-calendar' ), 'PN' => __( 'Pitcairn Islands', 'my-calendar' ), 'PL' => __( 'Poland', 'my-calendar' ), 'PT' => __( 'Portugal', 'my-calendar' ), 'PR' => __( 'Puerto Rico', 'my-calendar' ), 'QA' => __( 'Qatar', 'my-calendar' ), 'RO' => __( 'Romania', 'my-calendar' ), 'RU' => __( 'Russia', 'my-calendar' ), 'RW' => __( 'Rwanda', 'my-calendar' ), 'BL' => __( 'Saint Barthélemy', 'my-calendar' ), 'SH' => __( 'Saint Helena', 'my-calendar' ), 'KN' => __( 'Saint Kitts and Nevis', 'my-calendar' ), 'LC' => __( 'Saint Lucia', 'my-calendar' ), 'MF' => __( 'Saint Martin', 'my-calendar' ), 'PM' => __( 'Saint Pierre and Miquelon', 'my-calendar' ), 'VC' => __( 'Saint Vincent and the Grenadines', 'my-calendar' ), 'WS' => __( 'Samoa', 'my-calendar' ), 'SM' => __( 'San Marino', 'my-calendar' ), 'SA' => __( 'Saudi Arabia', 'my-calendar' ), 'SN' => __( 'Senegal', 'my-calendar' ), 'RS' => __( 'Serbia', 'my-calendar' ), 'CS' => __( 'Serbia and Montenegro', 'my-calendar' ), 'SC' => __( 'Seychelles', 'my-calendar' ), 'SL' => __( 'Sierra Leone', 'my-calendar' ), 'SG' => __( 'Singapore', 'my-calendar' ), 'SK' => __( 'Slovakia', 'my-calendar' ), 'SI' => __( 'Slovenia', 'my-calendar' ), 'SB' => __( 'Solomon Islands', 'my-calendar' ), 'SO' => __( 'Somalia', 'my-calendar' ), 'ZA' => __( 'South Africa', 'my-calendar' ), 'GS' => __( 'South Georgia and the South Sandwich Islands', 'my-calendar' ), 'KR' => __( 'South Korea', 'my-calendar' ), 'ES' => __( 'Spain', 'my-calendar' ), 'LK' => __( 'Sri Lanka', 'my-calendar' ), 'SD' => __( 'Sudan', 'my-calendar' ), 'SR' => __( 'Suriname', 'my-calendar' ), 'SJ' => __( 'Svalbard and Jan Mayen', 'my-calendar' ), 'SZ' => __( 'Swaziland', 'my-calendar' ), 'SE' => __( 'Sweden', 'my-calendar' ), 'CH' => __( 'Switzerland', 'my-calendar' ), 'SY' => __( 'Syria', 'my-calendar' ), 'ST' => __( 'São Tomé and Príncipe', 'my-calendar' ), 'TW' => __( 'Taiwan', 'my-calendar' ), 'TJ' => __( 'Tajikistan', 'my-calendar' ), 'TZ' => __( 'Tanzania', 'my-calendar' ), 'TH' => __( 'Thailand', 'my-calendar' ), 'TL' => __( 'Timor-Leste', 'my-calendar' ), 'TG' => __( 'Togo', 'my-calendar' ), 'TK' => __( 'Tokelau', 'my-calendar' ), 'TO' => __( 'Tonga', 'my-calendar' ), 'TT' => __( 'Trinidad and Tobago', 'my-calendar' ), 'TN' => __( 'Tunisia', 'my-calendar' ), 'TR' => __( 'Turkey', 'my-calendar' ), 'TM' => __( 'Turkmenistan', 'my-calendar' ), 'TC' => __( 'Turks and Caicos Islands', 'my-calendar' ), 'TV' => __( 'Tuvalu', 'my-calendar' ), 'UM' => __( 'U.S. Minor Outlying Islands', 'my-calendar' ), 'PU' => __( 'U.S. Miscellaneous Pacific Islands', 'my-calendar' ), 'VI' => __( 'U.S. Virgin Islands', 'my-calendar' ), 'UG' => __( 'Uganda', 'my-calendar' ), 'UA' => __( 'Ukraine', 'my-calendar' ), 'SU' => __( 'Union of Soviet Socialist Republics', 'my-calendar' ), 'AE' => __( 'United Arab Emirates', 'my-calendar' ), 'GB' => __( 'United Kingdom', 'my-calendar' ), 'US' => __( 'United States', 'my-calendar' ), 'UY' => __( 'Uruguay', 'my-calendar' ), 'UZ' => __( 'Uzbekistan', 'my-calendar' ), 'VU' => __( 'Vanuatu', 'my-calendar' ), 'VA' => __( 'Vatican City', 'my-calendar' ), 'VE' => __( 'Venezuela', 'my-calendar' ), 'VN' => __( 'Vietnam', 'my-calendar' ), 'WK' => __( 'Wake Island', 'my-calendar' ), 'WF' => __( 'Wallis and Futuna', 'my-calendar' ), 'EH' => __( 'Western Sahara', 'my-calendar' ), 'YE' => __( 'Yemen', 'my-calendar' ), 'ZM' => __( 'Zambia', 'my-calendar' ), 'ZW' => __( 'Zimbabwe', 'my-calendar' ), 'AX' => __( 'Åland Islands', 'my-calendar' ), ); /** * Filter the country list before returning. * * @hook mc_countries_filters * * @param {array} $countries countries array for filtering. */ $countries = apply_filters( 'mc_countries_filters', $countries ); $results = array(); foreach ( $countries as $key => $value ) { if ( stripos( $value, $query ) !== false || strtolower( $query ) === strtolower( $key ) ) { $results[] = $countries[ $key ]; } } return $results; } /** * Filter theme content to display My Calendar location data. * * @param string $content Post content. * * @return string */ function mc_display_location_details( $content ) { if ( is_singular( 'mc-locations' ) && in_the_loop() && is_main_query() ) { $location = mc_get_location_id( get_the_ID() ); $location = mc_get_location( $location ); if ( ! is_object( $location ) ) { return $content; } $args = array( 'ltype' => 'name', 'lvalue' => $location->location_label, 'type' => 'events', 'after' => 5, 'before' => 0, 'fallback' => __( 'No events currently scheduled at this location.', 'my-calendar' ), ); /** * Filter the arguments used to generate upcoming events for a location. Default ['ltype' => 'name', 'lvalue' => {location_label}, 'type' => 'events', 'after' => 5, 'before' => 0, 'fallback' => 'No events currently scheduled at this location.']. * * @hook mc_display_location_events * * @param {array} $args Array of upcoming events arguments. * @param {object} $location Location object. * * @return {array} */ $args = apply_filters( 'mc_display_location_events', $args, $location ); $events = my_calendar_upcoming_events( $args ); $data = array( 'location' => $location, 'events' => $events, ); $details = mc_load_template( 'location/single', $data ); if ( $details ) { $content = $details; } else { $content = '
' . $content . '
' . mc_generate_map( $location, 'location' ) . '
' . mc_hcard( $location, 'true', 'true', 'location' ) . '

' . __( 'Upcoming Events', 'my-calendar' ) . '

' . $events . '
'; /** * Filter the HTML output for single location details. * * @hook mc_location_output * * @param {string} $content Full HTML output. * @param {object} $location Calendar location object. * * @return {string} */ $content = apply_filters( 'mc_location_output', $content, $location ); } } return $content; } add_filter( 'the_content', 'mc_display_location_details' ); Calendar of Events – Radość-Joy
pl_PLPolski