/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":138192,"date":"2026-05-27T21:45:45","date_gmt":"2026-05-27T21:45:45","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=138192"},"modified":"2026-05-27T21:45:46","modified_gmt":"2026-05-27T21:45:46","slug":"grand-canyon-travels-believed-invitees-publication","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/grand-canyon-travels-believed-invitees-publication\/","title":{"rendered":"Grand Canyon Travels Believed & Invitees Publication"},"content":{"rendered":"

Children would want brand new Junior Ranger System, that provides instructional factors and another type of badge through to end. Begin their head to at the Southern Rim Visitor Center, in which interactive exhibits offer the room\u2019s background and geology your. Examining the urban area with your loved ones opens up a world of excitement and you may learning possibilities. These packages usually include coupons toward show adventures, directed hikes, or even chopper trips. To save money and time, mention plan marketing you to combine accommodations which have transit or trips. All these internet sites promote full hookups and they are ideal for road-trippers.<\/p>\n

Show sensitive recommendations merely on the formal, secure other sites.<\/p>\n

A huge Canyon mule trip are a keen excitement and easy to the their legs. Talk about the new deepness of one’s Grand Canyon Federal Playground with the popular trails including the Bright Angel and you can Southern Kaibab trail with the a great mule. Discover virtually a huge selection of kilometers so you can walk and you may backpack and you can explore. Create your Grand Canyon vacation epic by doing iconic points and you will seeing the newest need-get a hold of sights.<\/p>\n

Whether your\u2019re also believe a family group travels otherwise a solo excitement, the new diverse facts ensure here\u2019s anything for all. Whether your\u2019re also making plans for your basic see otherwise returning for the next thrill, this article will assist you to take advantage of your vacation. When it\u2019s excitement, sightseeing and you will background all rolling on the one that need to the the Huge Canyon travel, then Huge Canyon Train is the answer.<\/p>\n

For each and every stratum shows an alternative part off Earth\u2019s history, of ancient waters so you’re able to volcanic activity. Regarding old tales to geological amazing things, this new canyon offers a search as a result of date. Countless many years of background is etched for the canyon\u2019s walls. Let\u2019s diving on the everything you need to understand to plan an enthusiastic memorable travel. From its inflatable scenery so you’re able to its varied ecosystems, the latest park was a treasure-trove off feel would love to become searched. Did you know over 4.7 million somebody went along to this renowned destination inside the 2023?<\/p>\n

With respect to actionable guidance, manage a regular getting bank account balances and you may setting session constraints. As a professional which have fire joker<\/a> 10 years in the arena, I recommend providing notifications to possess account standing and using code professionals to possess safer stores. On the web gambling happens to be increasingly popular, giving users the convenience of position bets from anywhere. Adding funds to your account is quick and easy, having safer commission operating set up to guard their transactions. Zero, among the criticisms out-of Bbrbet is that it doesn’t ensure it is pages to totally mention the structure in the place of making a deposit, that’s recognized as a user-unfriendly element.<\/p>\n

(Beware that this path is actually very popular and incredibly opened \u2014 Not an excellent selection for individuals with a concern with levels!) (Mather Section, widely known lookout, is just an excellent 5-minute go.) When you have an entire date \u2013 much the higher! (Parking and you will\/otherwise remaining in Tusayan is yet another selection for visiting the park.) It gives cuatro stops within the Tusayan.<\/p>\n

This can be an expensive but Well-accepted excursion and you will courses right up since 15 months in advance! The newest Brilliant Angel Path (7 miles per way) is one of preferred, safe, and more shaded walk having a convenient trailhead found of the Bright Angel Resorts. Package consequently and check for the NPS Backcountry Advice Cardiovascular system just before signing your channel.<\/p>\n

Led trips, anywhere between step 3 in order to 18 days, take a look at metropolises such as for example Lees Ferry, Phantom Farm, and you will Whitmore Clean, navigating distances all the way to 226 lake kilometers. After ward, keep your adrenaline working with a journey for the Western Rim Zero Range on Hualapai Part, or choose to take a look at the traditional interest studios on Eagle Part. So much more rugged and less crowded\u2014it typically notices a tenth of all of the park people\u2014new Northern Rim is actually cool and you may shielded from inside the forest from aspen, fir, and you will liven woods. To own campers, typically the most popular route down ‘s the Vibrant Angel Trail, that’s throughout the 5 miles one way to Havasupai Gardens, and you can 9 kilometers so you’re able to Vibrant Angel campsites.<\/p>\n

When the roadway is closed to personal vehicles out of March 1 courtesy November 31, coach busses ferry visitors to nine lookouts, along with Mohave and Pima Points additionally the Abyss\u2014so called as it\u2019s an absolute vertical miss out-of 3,one hundred thousand base. Located along the Southern area Rim on Hermit Road, Hopi Point is where to look at this new sundown. A section of one’s Rim Path closed having in depth explanations from geological record, the fresh new quick but worthwhile Path of energy helps make feeling of the fresh new colorful layers that provide this new canyon walls its candy-stripe looks. If you get the early-morning initiate recommended more than, you might logically see them everything in one date, regardless if many people commonly forget about an art gallery or two. You\u2019ll get sightseeing cut-out to you personally, although, very utilize the following the intend to examine the most important packets within the a preliminary see.<\/p>\n

If you\u2019re also seeing the very first time otherwise coming back for another thrill, regular planning ensures a memorable feel. This type of often become lodging, transit, and you can issues, making it simpler to help you plan your trip. Getting a stress-100 percent free travel, consider taking advantage of regular package profit. Winter season ‘s the quietest seasons, good for those individuals seeking solitude. Spring and you can slip provide a balance out of pleasant weather and you will fewer individuals. Reservation early guarantees you secure the ideal marketing and prevent level-year crowds.<\/p>\n

June is perfect for long times of hiking and you can rafting, regardless if temperatures is also soar. To make certain a comfortable stand, harmony productive adventures with downtime. For a smaller excitement, is brand new mile-a lot of time apartment hike to help you Shoshone Part, a serene picnic room simply ten full minutes regarding the invitees cardio. Plan your own remain intelligently to optimize comfort and comfort via your adventure. Picking out the prime place to stand renders your trip also far more splendid.<\/p>\n

I\u2019m Cheryl and you can my husband and i have been creating take a trip instructions because the 2020. The brand new Huge Canyon Train, biking, stargazing, walking, mule rides, beautiful pushes, tribal countries, creature areas, and Route 66 all are alternatives for men. It had been so large, stunning, and finest this appeared as if a picture in my opinion. “Canyon Dave try a grand Canyon legend…providing anyone for the really informative trips regarding Grand Canyon.” Trips are a great way to mix transportation, items, and you will sightseeing in one single bundle. Check out the Travelling Environmentally friendly webpage to own a guide with the believe your upcoming green excitement.<\/p>\n","protected":false},"excerpt":{"rendered":"

Children would want brand new Junior Ranger System, that provides instructional factors and another type of badge through to end. Begin their head to at the Southern Rim Visitor Center, in which interactive exhibits offer the room\u2019s background and geology your. Examining the urban area with your loved ones opens\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-138192","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=138192"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138192\/revisions"}],"predecessor-version":[{"id":138193,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138192\/revisions\/138193"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=138192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=138192"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=138192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}