logger->log( 'Start-' . __CLASS__ . '::' . __FUNCTION__ ); wcf()->logger->log( 'Only for thank you page' ); if ( wcf()->flow->is_thankyou_page_exists( $order ) ) { if ( _is_wcf_doing_checkout_ajax() ) { $checkout_id = wcf()->utils->get_checkout_id_from_post_data(); if ( ! $checkout_id ) { $checkout_id = wcf()->utils->get_checkout_id_from_order( $order->get_id() ); } } else { $checkout_id = wcf()->utils->get_checkout_id_from_order( $order->get_id() ); } wcf()->logger->log( 'Checkout ID : ' . $checkout_id ); if ( $checkout_id ) { $thankyou_step_id = wcf()->flow->get_thankyou_page_id( $order ); if ( $thankyou_step_id ) { $order_recieve_url = get_permalink( $thankyou_step_id ); $order_recieve_url = add_query_arg( array( 'wcf-order' => $order->get_id(), 'wcf-key' => $order->get_order_key(), ), $order_recieve_url ); } } } wcf()->logger->log( 'End-' . __CLASS__ . '::' . __FUNCTION__ ); return $order_recieve_url; } /** * Cancel and redirect to checkout * * @param string $return_url url. * @since 1.0.0 */ function redirect_to_checkout_on_cancel( $return_url ) { if ( _is_wcf_doing_checkout_ajax() ) { $checkout_id = wcf()->utils->get_checkout_id_from_post_data(); if ( ! $checkout_id ) { $checkout_id = wcf()->utils->get_checkout_id_from_order( $order->get_id() ); } } else { $checkout_id = wcf()->utils->get_checkout_id_from_order( $order->get_id() ); } if ( $checkout_id ) { $return_url = add_query_arg( array( 'cancel_order' => 'true', '_wpnonce' => wp_create_nonce( 'woocommerce-cancel_order' ), ), get_permalink( $checkout_id ) ); } return $return_url; } /** * Remove theme styles. * * @since 1.0.0 */ function remove_theme_styles() { // get all styles data. global $wp_styles; global $wp_scripts; $get_stylesheet = get_stylesheet(); $get_template = get_template(); if ( Cartflows_Compatibility::get_instance()->is_divi_enabled() ) { return; } $get_stylesheet = 'themes/' . get_stylesheet(); $get_template = 'themes/' . get_template(); // loop over all of the registered scripts.. foreach ( $wp_styles->registered as $handle => $data ) { if ( strpos( $data->src, $get_template ) !== false || strpos( $data->src, $get_stylesheet ) !== false ) { // remove it. wp_deregister_style( $handle ); wp_dequeue_style( $handle ); } } // loop over all of the registered scripts. foreach ( $wp_scripts->registered as $handle => $data ) { if ( strpos( $data->src, $get_template ) !== false || strpos( $data->src, $get_stylesheet ) !== false ) { // remove it. wp_deregister_script( $handle ); wp_dequeue_script( $handle ); } } } /** * Update main order data in transient. * * @param array $woo_styles new styles array. * @since 1.0.0 * @return array. */ function woo_default_css( $woo_styles ) { $woo_styles = array( 'woocommerce-layout' => array( 'src' => plugins_url( 'assets/css/woocommerce-layout.css', WC_PLUGIN_FILE ), 'deps' => '', 'version' => WC_VERSION, 'media' => 'all', 'has_rtl' => true, ), 'woocommerce-smallscreen' => array( 'src' => plugins_url( 'assets/css/woocommerce-smallscreen.css', WC_PLUGIN_FILE ), 'deps' => 'woocommerce-layout', 'version' => WC_VERSION, 'media' => 'only screen and (max-width: ' . apply_filters( 'woocommerce_style_smallscreen_breakpoint', '768px' ) . ')', 'has_rtl' => true, ), 'woocommerce-general' => array( 'src' => plugins_url( 'assets/css/woocommerce.css', WC_PLUGIN_FILE ), 'deps' => '', 'version' => WC_VERSION, 'media' => 'all', 'has_rtl' => true, ), ); return $woo_styles; } /** * Init Actions. * * @since 1.0.0 */ function init_actions() { $this->set_flow_session(); } /** * Set flow session. * * @since 1.0.0 */ function set_flow_session() { if ( wcf()->utils->is_step_post_type() ) { add_action( 'wp_head', array( $this, 'noindex_flow' ) ); wcf()->utils->do_not_cache(); } } /** * Add noindex, nofollow. * * @since 1.0.0 */ function noindex_flow() { $common = Cartflows_Helper::get_common_settings(); if ( 'enable' === $common['disallow_indexing'] ) { echo ''; } } /** * WP Actions. * * @since 1.0.0 */ function wp_actions() { if ( wcf()->utils->is_step_post_type() ) { /* CSS Compatibility for All theme */ add_filter( 'woocommerce_enqueue_styles', array( $this, 'woo_default_css' ), 9999 ); add_action( 'wp_enqueue_scripts', array( $this, 'remove_theme_styles' ), 9999 ); add_action( 'wp_enqueue_scripts', array( $this, 'global_flow_scripts' ), 20 ); } } /** * Global flow scripts. * * @since 1.0.0 */ function global_flow_scripts() { global $post; $flow = get_post_meta( $post->ID, 'wcf-flow-id', true ); $current_step = $post->ID; $next_step_link = ''; $compatibility = Cartflows_Compatibility::get_instance(); if ( _is_wcf_landing_type() ) { $next_step_id = wcf()->utils->get_next_step_id( $flow, $current_step ); $next_step_link = get_permalink( $next_step_id ); } $localize = array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'is_pb_preview' => $compatibility->is_page_builder_preview(), 'current_flow' => $flow, 'current_step' => $current_step, 'next_step' => $next_step_link, ); wp_localize_script( 'jquery', 'cartflows', apply_filters( 'global_cartflows_js_localize', $localize ) ); wp_enqueue_style( 'wcf-frontend-global', CARTFLOWS_URL . 'assets/css/frontend.css', array(), CARTFLOWS_VER ); wp_style_add_data( 'wcf-frontend-global', 'rtl', 'replace' ); wp_enqueue_script( 'wcf-frontend-global', CARTFLOWS_URL . 'assets/js/frontend.js', array( 'jquery' ), CARTFLOWS_VER, true ); } } /** * Prepare if class 'Cartflows_Frontend' exist. * Kicking this off by calling 'get_instance()' method */ Cartflows_Frontend::get_instance();