r/** * Adds a simple meta entry to the repository filter schema. * * @since 4.9.5 * * @param string $key The filter key, the one that will be used in `by` and `where` calls. * @param string|array $meta_key The meta key(s) to use for the meta lookup. * @param string|null $by The ->by() lookup to use (defaults to meta_regexp_or_like). */h!- !-q/** * Adds a simple taxonomy entry to the repository filter schema. * * @since 4.9.5 * * @param string $key The filter key, the one that will be used in `by` and `where` calls. * @param string|array $taxonomy The taxonomy/taxonomies to use for the tax lookup. * @param string|null $by The ->by() lookup to use (defaults to term_in). */--x----` -/** * Builds a meta query entry. * * @since 4.7.19 * * @param string $meta_key * @param string|array $meta_value * @param string $compare * @param string $type_or_format The type of value to compare * * @return array|null * @throws Tribe__Repository__Usage_Error If trying to compare multiple values with a single * comparison operator. *//** * Validates that a comparison operator is used with the correct type of values. * * This is just a wrap to signal this kind of code error not in bad SQL error but * with a visible exception. * * @since 4.7.19 * * @param string $compare A SQL comparison operator * @param string|array $meta_key * @param mixed $meta_value * * @throws Tribe__Repository__Usage_Error */i/** * Returns the delete callback function or method to use to delete posts. * * @since 4.9.5 * * @param int|array $to_delete The post ID to delete or an array of post IDs to delete. * @param bool $background Whether the callback will be used in background delete operations or not. * * @return callable The callback to use. */@(-p(-@R@i/** * Returns the update callback function or method to use to update posts. * * @since 4.9.5 * * @param int|array $to_update The post ID to update or an array of post IDs to update. * @param bool $background Whether the callback will be used in background update operations or not. * * @return callable The callback to use. */-@z H*-@`(/** * Returns a value trying to fetch it from an array first and then * reading it from the meta. * * @since 4.9.5 * * @param array $postarr The array to look into. * @param string $key The key to retrieve. * @param int|null $post_id The post ID to fetch the value for. * @param mixed $default The default value to return if nothing was found. * * @return mixed The found value if any. */ldrP?^r``@_"rrp"r @-r G5r H]6r vD9rp w_r <,r >%8rP >@M(yZ+f.7ldrP/?Zr%h@0prP`0B_rp0<}1rp(0p_r0<,r0>%8rp1>yZyZ՜ F Ff.7/- /-`0-p0-=D\ eventDisplayD-set_viewlugct⟚sql_slugE85Fw eventDatergsafeaturedz  (\d{4}-\d{2})E85Fw eventDateer {{ day }}{{ featured }}=D\ eventDisplayeVD&ebuild_tax_query viewOption8^Clis_single_event=D\ eventDisplay postMessagest6VЧ max_font_sizeru%bx widget_in_use eventDisplaye,i ate {{ list }}eafeatured[,t section_slugd-Rl template_varsyj[yNLo alias-slugst_=D\ eventDisplay{{ featured }}0l-l-1 ?queue_priority separatorlshydy {{ month }}HM-W9 5r tribe-notice-\Cinjected_posts=D\ eventDisplay {{ month }}<-Xȭk get_view_htmlt sanitize_keyteXȭk get_view_html eventDisplayyɼup disable_v1bel organizersxtafeaturedZ,>g䔔get_view_labelYUDw is_activeport@ =l  {{ page }}e{{ featured }} eventDisplay tribe_vieweC&Xq has_filterE85Fw eventDatergs=D\ eventDisplay {{ page }}ters{{ featured }}=D\ eventDisplayE85Fw eventDateltersafeaturedilters=D\ eventDisplayr(Ii( tribe-theme- eventDisplay tribe_view~~registerhemeafeaturedomise=D\ eventDisplay{{ featured }}F<8gget_admin_data end_date_utcP-BG? button_colort9-L async_delete=D\ eventDisplaystart_date_utc Uuw add_hooksrsectC-D4Yr/delete_callbackClis_single_evento-ZQ)@Q get_arguments_e inject_postsE{{ featured }}{{page}}gafeaturedmeТ-.(c _deprecatedCEafeaturedomise@f 0c'p['w @6-{{ featured }}hQ,H; _template_vars=D\ eventDisplayE85Fw eventDatee_,E|s> title_coloronsE-Dkday_datetersjafeaturedtersP[cr٧primary_id_base=D\ eventDisplayE85Fw eventDateeF-&option_widget_:args_to_context{{ featured }}W,+;w mock_pagers=D\ eventDisplayE85Fw eventDatee start_date|>register_assets=D\ eventDisplayIM# should_displayE85Fw eventDateers (\d{4}-\d{2})O-WŁ matches_regexL async_deleteV,erATribe\Widget\__>phget_mocked_pageafeaturedomise permalink_all8^,,wE enabled_views7_oJp get_methoderh (\d{4}-\d{2})ߢ>b __constructtrx%&widget_location^'@k (o-p^'g- tribe-common=D\ eventDisplay {{ today }}st~~registers accent_colorrsnprioritytns{{ featured }}=D\ eventDisplayM-l p event-pastxt@Q,ON- displays_onons@έk get_view_slug8D-J9`ڦget_filter_nameJ9`ڦget_filter_name {{ today }}-IaJEW is_renderedt = DISABLED_arg1-$r set_noticeces {{ list }}rs{{ featured }}Q[canonical_args eventDisplay tribe_view=D\ eventDisplayafeaturedme@'` 8-e!_ *contentsek,,\venue_post_typenpriorityntsdVL async_update tribe-commontg-h噁url_componentsO-@`{6&(p%W8 Ps s 0< pa'@8,W =l `{6(&(@Qr pa'@8,g՜r[s s r[^`\'@| *w y c='=' s p%EW8 Pв*^'^' =l W =l  =l (/k (/k  (@s %0%(/k (/k tR ^'^`?`k `m @ƛ ̛8^,`^Nk hQ6pa'P/k P/k @$w 8k 8k  ̛ ̛@k @k pm,pm,@s @s  L@s @k s pa'pa'@XS p;`6l PE-@t =U, ̛Zr!,Xp_rX<}rPXITrPZpRZrPZtRZrp`Zt_rZ<}r`Zr` \rp\ArP!_2r_c:r_+ZrXi8`p_r`<}r `Vr0bc:r0@b+%8r c>?rpf+ Yr`Hf=rPfC[r@fITrPhipRZrPitRZr`itF`ri< YrPxr=W$rPr6$rEh rR-rr7 .rr8ArPrArP`ruF`rr<ITrPtp_rt<}rtITrPPvpRZrPPvt8>r``vBF`rv<Vrxc:r@x+%8ry>?rp|+ Yr`|=rP|C[r |%8r0}>33y )'  L''@M( v, , , v,EEy (*k `0($88EEy@M( v, , , v,f.7ZrH~ p_r<}rPITrPpRZrPtRZrp`t_r<}r`r` rpArP!2rc:r+ZrXi8p_r<}r Vr0c:r0@+%8r >?rp+ Yr`H=rPC[r@ $fields ) ); } /** * @deprecated 3.0 * @return string */ function woocommerce_product_post_type_link( $permalink, $post ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_product_post_type_link' ); return wc_product_post_type_link( $permalink, $post ); } /** * @deprecated 3.0 * @return string */ function woocommerce_placeholder_img_src() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_placeholder_img_src' ); return wc_placeholder_img_src(); } /** * @deprecated 3.0 * @return string */ function woocommerce_placeholder_img( $size = 'woocommerce_thumbnail' ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_placeholder_img' ); return wc_placeholder_img( $size ); } /** * @deprecated 3.0 * @return string */ function woocommerce_get_formatted_variation( $variation = '', $flat = false ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_get_formatted_variation' ); return wc_get_formatted_variation( $variation, $flat ); } /** * @deprecated 3.0 * @return void */ function woocommerce_scheduled_sales() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_scheduled_sales' ); wc_scheduled_sales(); } /** * @deprecated 3.0 * @return array */ function woocommerce_get_attachment_image_attributes( $attr ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_get_attachment_image_attributes' ); return wc_get_attachment_image_attributes( $attr ); } /** * @deprecated 3.0 * @return array */ function woocommerce_prepare_attachment_for_js( $response ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_prepare_attachment_for_js' ); return wc_prepare_attachment_for_js( $response ); } /** * @deprecated 3.0 * @return void */ function woocommerce_track_product_view() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_track_product_view' ); wc_track_product_view(); } /** * @deprecated 2.3 has no replacement * @return void */ function woocommerce_compile_less_styles() { wc_deprecated_function( 'woocommerce_compile_less_styles', '2.3' ); } /** * woocommerce_calc_shipping was an option used to determine if shipping was enabled prior to version 2.6.0. This has since been replaced with wc_shipping_enabled() function and * the woocommerce_ship_to_countries setting. * @deprecated 2.6.0 * @return string */ function woocommerce_calc_shipping_backwards_compatibility( $value ) { if ( Constants::is_defined( 'WC_UPDATING' ) ) { return $value; } return 'disabled' === get_option( 'woocommerce_ship_to_countries' ) ? 'no' : 'yes'; } add_filter( 'pre_option_woocommerce_calc_shipping', 'woocommerce_calc_shipping_backwards_compatibility' ); /** * @deprecated 3.0.0 * @see WC_Structured_Data class * * @return string */ function woocommerce_get_product_schema() { wc_deprecated_function( 'woocommerce_get_product_schema', '3.0' ); global $product; $schema = "Product"; // Downloadable product schema handling if ( $product->is_downloadable() ) { switch ( $product->download_type ) { case 'application' : $schema = "SoftwareApplication"; break; case 'music' : $schema = "MusicAlbum"; break; default : $schema = "Product"; break; } } return 'http://schema.org/' . $schema; } /** * Save product price. * * This is a private function (internal use ONLY) used until a data manipulation api is built. * * @deprecated 3.0.0 * @param int $product_id * @param float $regular_price * @param float $sale_price * @param string $date_from * @param string $date_to * @return void */ function _wc_save_product_price( $product_id, $regular_price, $sale_price = '', $date_from = '', $date_to = '' ) { wc_doing_it_wrong( '_wc_save_product_price()', 'This function is not for developer use and is deprecated.', '3.0' ); $product_id = absint( $product_id ); $regular_price = wc_format_decimal( $regular_price ); $sale_price = '' === $sale_price ? '' : wc_format_decimal( $sale_price ); $date_from = wc_clean( $date_from ); $date_to = wc_clean( $date_to ); update_post_meta( $product_id, '_regular_price', $regular_price ); update_post_meta( $product_id, '_sale_price', $sale_price ); // Save Dates update_post_meta( $product_id, '_sale_price_dates_from', $date_from ? strtotime( $date_from ) : '' ); update_post_meta( $product_id, '_sale_price_dates_to', $date_to ? strtotime( $date_to ) : '' ); if ( $date_to && ! $date_from ) { $date_from = strtotime( 'NOW', current_time( 'timestamp' ) ); update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); } // Update price if on sale if ( '' !== $sale_price && '' === $date_to && '' === $date_from ) { update_post_meta( $product_id, '_price', $sale_price ); } else { update_post_meta( $product_id, '_price', $regular_price ); } if ( '' !== $sale_price && $date_from && strtotime( $date_from ) < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { update_post_meta( $product_id, '_price', $sale_price ); } if ( $date_to && strtotime( $date_to ) < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { update_post_meta( $product_id, '_price', $regular_price ); update_post_meta( $product_id, '_sale_price_dates_from', '' ); update_post_meta( $product_id, '_sale_price_dates_to', '' ); } } /** * Return customer avatar URL. * * @deprecated 3.1.0 * @since 2.6.0 * @param string $email the customer's email. * @return string the URL to the customer's avatar. */ function wc_get_customer_avatar_url( $email ) { // Deprecated in favor of WordPress get_avatar_url() function. wc_deprecated_function( 'wc_get_customer_avatar_url()', '3.1', 'get_avatar_url()' ); return get_avatar_url( $email ); } /** * WooCommerce Core Supported Themes. * * @deprecated 3.3.0 * @since 2.2 * @return string[] */ function wc_get_core_supported_themes() { wc_deprecated_function( 'wc_get_core_supported_themes()', '3.3' ); return array( 'twentyseventeen', 'twentysixteen', 'twentyfifteen', 'twentyfourteen', 'twentythirteen', 'twentyeleven', 'twentytwelve', 'twentyten' ); } /** * Get min/max price meta query args. * * @deprecated 3.6.0 * @since 3.0.0 * @param array $args Min price and max price arguments. * @return array */ function wc_get_min_max_price_meta_query( $args ) { wc_deprecated_function( 'wc_get_min_max_price_meta_query()', '3.6' ); $current_min_price = isset( $args['min_price'] ) ? floatval( $args['min_price'] ) : 0; $current_max_price = isset( $args['max_price'] ) ? floatval( $args['max_price'] ) : PHP_INT_MAX; return apply_filters( 'woocommerce_get_min_max_price_meta_query', array( 'key' => '_price', 'value' => array( $current_min_price, $current_max_price ), 'compare' => 'BETWEEN', 'type' => 'DECIMAL(10,' . wc_get_price_decimals() . ')', ), $args ); } /** * When a term is split, ensure meta data maintained. * * @deprecated 3.6.0 * @param int $old_term_id Old term ID. * @param int $new_term_id New term ID. * @param string $term_taxonomy_id Term taxonomy ID. * @param string $taxonomy Taxonomy. * @return void */ function wc_taxonomy_metadata_update_content_for_split_terms( $old_term_id, $new_term_id, $term_taxonomy_id, $taxonomy ) { wc_deprecated_function( 'wc_taxonomy_metadata_update_content_for_split_terms', '3.6' ); } /** * WooCommerce Term Meta API. * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value. * @param string $prev_value Previous value. (default: ''). * @return bool */ function update_woocommerce_term_meta( $term_id, $meta_key, $meta_value, $prev_value = '' ) { wc_deprecated_function( 'update_woocommerce_term_meta', '3.6', 'update_term_meta' ); return function_exists( 'update_term_meta' ) ? update_term_meta( $term_id, $meta_key, $meta_value, $prev_value ) : update_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value, $prev_value ); } /** * WooCommerce Term Meta API. * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value. * @param bool $unique Make meta key unique. (default: false). * @return bool */ function add_woocommerce_term_meta( $term_id, $meta_key, $meta_value, $unique = false ) { wc_deprecated_function( 'add_woocommerce_term_meta', '3.6', 'add_term_meta' ); return function_exists( 'add_term_meta' ) ? add_term_meta( $term_id, $meta_key, $meta_value, $unique ) : add_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value, $unique ); } /** * WooCommerce Term Meta API * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value (default: ''). * @param bool $deprecated Deprecated param (default: false). * @return bool */ function delete_woocommerce_term_meta( $term_id, $meta_key, $meta_value = '', $deprecated = false ) { wc_deprecated_function( 'delete_woocommerce_term_meta', '3.6', 'delete_term_meta' ); return function_exists( 'delete_term_meta' ) ? delete_term_meta( $term_id, $meta_key, $meta_value ) : delete_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value ); } /** * WooCommerce Term Meta API * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $key Meta key. * @param bool $single Whether to return a single value. (default: true). * @return mixed */ function get_woocommerce_term_meta( $term_id, $key, $single = true ) { wc_deprecated_function( 'get_woocommerce_term_meta', '3.6', 'get_term_meta' ); return function_exists( 'get_term_meta' ) ? get_term_meta( $term_id, $key, $single ) : get_metadata( 'woocommerce_term', $term_id, $key, $single ); } /** * Registers the default log handler. * * @deprecated 8.6.0 * @since 3.0 * @param array $handlers Handlers. * @return array */ function wc_register_default_log_handler( $handlers = array() ) { wc_deprecated_function( 'wc_register_default_log_handler', '8.6.0' ); $default_handler = wc_get_container()->get( Settings::class )->get_default_handler(); array_push( $handlers, new $default_handler() ); return $handlers; } /** * Get a log file path. * * @deprecated 8.6.0 * @since 2.2 * * @param string $handle name. * @return string the log file path. */ function wc_get_log_file_path( $handle ) { wc_deprecated_function( 'wc_get_log_file_path', '8.6.0' ); $directory = LoggingUtil::get_log_directory(); $file_id = LoggingUtil::generate_log_file_id( $handle, null, time() ); $hash = LoggingUtil::generate_log_file_hash( $file_id ); return "{$directory}{$file_id}-{$hash}.log"; } /** * Get a log file name. * * @since 3.3 * * @param string $handle Name. * @return string The log file name. */ function wc_get_log_file_name( $handle ) { wc_deprecated_function( 'wc_get_log_file_name', '8.6.0' ); $file_id = LoggingUtil::generate_log_file_id( $handle, null, time() ); $hash = LoggingUtil::generate_log_file_hash( $file_id ); return "{$file_id}-{$hash}"; } /** * Load the persistent cart. * * @param string $user_login User login. * @param WP_User $user User data. * @deprecated 2.3 * @return void */ function wc_load_persistent_cart( $user_login, $user ) { if ( ! $user || ! apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) { return; } $saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart_' . get_current_blog_id(), true ); if ( ! $saved_cart ) { return; } $cart = WC()->session->cart; if ( empty( $cart ) || ! is_array( $cart ) || 0 === count( $cart ) ) { WC()->session->cart = $saved_cart['cart']; } } if ( ! function_exists( 'woocommerce_product_subcategories' ) ) { /** * This is a legacy function which used to check if we needed to display subcats and then output them. It was called by templates. * * From 3.3 onwards this is all handled via hooks and the woocommerce_maybe_show_product_subcategories function. * * Since some templates have not updated compatibility, to avoid showing incorrect categories this function has been deprecated and will * return nothing. Replace usage with woocommerce_output_product_categories to render the category list manually. * * This is a legacy function which also checks if things should display. * Themes no longer need to call these functions. It's all done via hooks. * * @deprecated 3.3.1 @todo Add a notice in a future version. * @param array $args Arguments. * @return null|boolean */ function woocommerce_product_subcategories( $args = array() ) { $defaults = array( 'before' => '', 'after' => '', 'force_display' => false, ); $args = wp_parse_args( $args, $defaults ); if ( $args['force_display'] ) { // We can still render if display is forced. woocommerce_output_product_categories( array( 'before' => $args['before'], 'after' => $args['after'], 'parent_id' => is_product_category() ? get_queried_object_id() : 0, ) ); return true; } else { // Output nothing. woocommerce_maybe_show_product_subcategories will handle the output of cats. $display_type = woocommerce_get_loop_display_mode(); if ( 'subcategories' === $display_type ) { // This removes pagination and products from display for themes not using wc_get_loop_prop in their product loops. @todo Remove in future major version. global $wp_query; if ( $wp_query->is_main_query() ) { $wp_query->post_count = 0; $wp_query->max_num_pages = 0; } } return 'subcategories' === $display_type || 'both' === $display_type; } } } /** * Products RSS Feed. * * @deprecated 2.6 * @return void */ function wc_products_rss_feed() { wc_deprecated_function( 'wc_products_rss_feed', '2.6' ); } if ( ! function_exists( 'woocommerce_reset_loop' ) ) { /** * Reset the loop's index and columns when we're done outputting a product loop. * * @deprecated 3.3 * @return void */ function woocommerce_reset_loop() { wc_reset_loop(); } } if ( ! function_exists( 'woocommerce_product_reviews_tab' ) ) { /** * Output the reviews tab content. * * @deprecated 2.4.0 Unused. * @return void */ function woocommerce_product_reviews_tab() { wc_deprecated_function( 'woocommerce_product_reviews_tab', '2.4' ); } } /** * Get the URL to the WooCommerce Legacy REST API. * * Note that as of WooCommerce 9.0 the WooCommerce Legacy REST API has been moved to a dedicated extension, * and the implementation of its root endpoint in WooCommerce core is now just a stub that will always return an error. * See the setup_legacy_api_stub method in includes/class-woocommerce.php and: * https://developer.woocommerce.com/2023/10/03/the-legacy-rest-api-will-move-to-a-dedicated-extension-in-woocommerce-9-0/ * * @deprecated 9.0.0 The Legacy REST API has been removed from WooCommerce core. * * @since 2.1 * @param string $path an endpoint to include in the URL. * @return string the URL. */ function get_woocommerce_api_url( $path ) { $url = get_home_url( null, 'wc-api/v3/', is_ssl() ? 'https' : 'http' ); if ( ! empty( $path ) && is_string( $path ) ) { $url .= ltrim( $path, '/' ); } return $url; } BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Glasser Canada - ECPv6.16.3//NONSGML v1.0//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-ORIGINAL-URL:https://glassercanada.com X-WR-CALDESC:Events for Glasser Canada REFRESH-INTERVAL;VALUE=DURATION:PT1H X-Robots-Tag:noindex X-PUBLISHED-TTL:PT1H BEGIN:VTIMEZONE TZID:America/Regina BEGIN:STANDARD TZOFFSETFROM:-0600 TZOFFSETTO:-0600 TZNAME:CST DTSTART:20250101T000000 END:STANDARD END:VTIMEZONE BEGIN:VTIMEZONE TZID:America/Toronto BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20250309T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20251102T060000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20260308T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20261101T060000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20270314T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20271107T060000 END:STANDARD END:VTIMEZONE BEGIN:VTIMEZONE TZID:UTC BEGIN:STANDARD TZOFFSETFROM:+0000 TZOFFSETTO:+0000 TZNAME:UTC DTSTART:20250101T000000 END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTART;TZID=America/Regina:20260727T090000 DTEND;TZID=America/Regina:20260727T170000 DTSTAMP:20260615T014903 CREATED:20260601T143330Z LAST-MODIFIED:20260601T143330Z UID:60836-1785142800-1785171600@glassercanada.com SUMMARY:Certification DESCRIPTION:Certification recognizes your demonstrated ability to apply Choice Theory® and Reality Therapy® with skill\, responsibility\, and respect for human dignity across contexts within your field of expertise \nYou earn international recognition\, professional credibility\, and a clear marker of commitment to ethical\, relationship-centered practice within the global WGI community. \n\nCertification is the final stage of the Choice Theory and Reality Therapy (CTRT) credentialing process established by the William Glasser Institute. Participants engage in a 30-hour program to demonstrate their practical competence in using Choice Theory® psychology and Reality Therapy® techniques with both familiar and unfamiliar clients. \n\nInstructor\nSheila Wignes-Paton \nPracticum Supervisor\nAnn Marie Piniach URL:https://glassercanada.com/evt/certification-2026-07/ LOCATION:Hill Centre Tower II\, 1881 Scarth St\, Regina\, Saskatchewan\, S4P 4K9\, Canada CATEGORIES:Certification,in person Training ATTACH;FMTTYPE=image/jpeg:https://glassercanada.com/wp-content/uploads/2026/06/Certification.jpg ORGANIZER;CN="Mrs. Sheila Wignes-Paton":MAILTO:swpaton@sasktel.net END:VEVENT BEGIN:VEVENT DTSTART;TZID=America/Toronto:20260805T180000 DTEND;TZID=America/Toronto:20260805T200000 DTSTAMP:20260615T014903 CREATED:20260601T135201Z LAST-MODIFIED:20260601T135201Z UID:60832-1785952800-1785960000@glassercanada.com SUMMARY:Masterclass Series: Calm Your Inner Critic DESCRIPTION:Reduce the noise of self-doubt and trust yourself so you can move through life with more freedom\nIf you’ve ever felt stuck in your own head…\nHeld yourself back because you weren’t quite sure you were ready…\nExperienced that quiet but persistent voice telling you to do more\, be better\, or not mess it up…\nOr simply wished you could quiet the constant commentary that keeps you from fully being yourself… \nThen you already know how much this inner dynamic shapes your confidence\, your decisions\, and the way you show up in your life. \nAnd if you’ve been on your personal development journey for a while\, you may have noticed that trying to push past it\, override it\, or “think more positively” only takes you so far… and often leaves you feeling stuck in the same patterns. \nThat’s exactly why the Expanding You team\, Lynn Sumida\, Jeff Brown\, and Leslie Brown\, have designed a different approach. They move beyond trying to control or override your thoughts because that’s not the root cause. Instead\, they work with the nervous system and the body\, where your inner critic is shaped\, so the shift toward confidence and self-trust feels grounded\, sustainable\, and true to you. \nGlasser Canada is excited to host this NEW masterclass series facilitated by Lynn Sumida and in partnership with the Expanding You team\, designed to help you understand what’s really driving that inner voice and shift your relationship with it in a way that creates real relief. \nInside this experience\, you will: \n\nDevelop a deeper understanding of how your inner critic operates and the role it’s been trying to play\, so you can begin to transform your relationship with your inner critic.\nUnlock the key to self-compassion so you can relate to yourself with more understanding instead of pressure. Moving beyond intellectual understanding\, you’ll learn how to access self-compassion in real moments\, so it becomes something you can feel and rely on without your inner critic taking over.\nBuild the internal capacity to access your best self\, even in moments of doubt or challenge\, so your confidence is no longer dependent on pushing through or “faking it\,” but instead grows from a more grounded\, consistent way of showing up over time.\n\nYou’ll also receive a guided workbook that walks you through a proven process to uncover the inner workings of your inner critic and begin designing your own pathway to freedom between sessions. \nAnd because we are serious about partnering with you to create meaningful change in your life\, you can expect to walk away with: \n\nA growing sense of ease as you release from your whole being the constant push\, perfectionism\, and need to control every outcome\nA deeper feeling of peace within (regardless of the chaos outside) as you quiet the voice that once sabotaged you\nMore access to joy as expectations soften and you begin to experience life with more freedom and self-assurance in your authentic self\n\nMasterclass Series Details:\n3 live sessions (2 hours each)\nOn August 5\, 12\, and 19\nAt 3:00 PM Pacific / 6:00 PM Eastern \nCan’t join us live for all 3 sessions? You’ll get access to the recording so you get full access regardless of what’s going on in your calendar. \nInvestment:\nEarly Bird: $247 (ends July 22)\nRegular: $297 \nRegister on EventBrite \nMeet Your Facilitator Lynn Sumida\nLynn is a senior faculty member with the William Glasser International and a leader in the application of Choice Theory and Reality Therapy. With over 30 years of experience in counselling\, training\, and facilitation\, she has worked extensively with individuals\, educators\, and organizations to support meaningful personal and relational change. Her work focuses on helping people understand the internal choices driving their behavior\, while integrating emotional awareness and body-based insight to create deep\, sustainable transformation. URL:https://glassercanada.com/evt/masterclass-series-calm-your-inner-critic-2026-08/ LOCATION:Saskatchewan CATEGORIES:Online Virtual ATTACH;FMTTYPE=image/png:https://glassercanada.com/wp-content/uploads/2026/06/GC-Website_CalmYourInnerCritic.png ORGANIZER;CN="Expanding You":MAILTO:hello@expandingyou.com END:VEVENT BEGIN:VEVENT DTSTART;VALUE=DATE:20261001 DTEND;VALUE=DATE:20261005 DTSTAMP:20260615T014903 CREATED:20240711T060453Z LAST-MODIFIED:20240711T060453Z UID:60162-1790812800-1791158399@glassercanada.com SUMMARY:William Glasser International Conference 2026 DESCRIPTION:Please scan QR code to register your interest for 2026 International Conference in Australia\n  URL:https://glassercanada.com/evt/william-glasser-international-conference-2026/ LOCATION:Twin Towns\, Griffith Street\,\, Coolangatta\, QLD\, Australia ATTACH;FMTTYPE=image/png:https://glassercanada.com/wp-content/uploads/2024/07/Screenshot-2024-07-10-at-9.57.38 PM.png END:VEVENT END:VCALENDAR