admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'ct_catcbfw_nonce' ), ); wp_localize_script( 'front_js', 'php_var', $_scripts ); } /** * Adding columns in custom post type table . * * @param string $button button of current product. * @param object $product object of current product. */ public function cloud_catcfw_filter_loop_add_to_cart_link( $button, $product ) { $bundle_detail = $this->cloud_catcfw_check_product_match_all_rule_or_not( $product->get_id() ); if ( isset( $bundle_detail['rule_id'] ) ) { $rule_id = $bundle_detail['rule_id']; $icon = ''; if ( ! empty( get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) ) ) { $icon = ''; if ( 'upload_custom_icon' === (string) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_uploaded_icon', true ) ) { $icon = ''; } if ( 'custom_icon_class' === (string) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_icon_class', true ) ) { $icon = ''; } } $button_text = str_replace( '{icon}', $icon, get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_text', true ) ); $ct_catcbfw_add_to_cart_styling = (array) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_styling', true ); $button_text_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_color'] : ''; $button_text_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] : ''; $button_text_hover_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] : ''; $button_text_hover_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] : ''; $button_border_color = isset( $ct_catcbfw_add_to_cart_styling['button_border_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_color'] : ''; $button_font_size = isset( $ct_catcbfw_add_to_cart_styling['button_font_size'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_size'] : 14; $button_font_weight = isset( $ct_catcbfw_add_to_cart_styling['button_font_weight'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_weight'] : '100'; $button_border_radius = isset( $ct_catcbfw_add_to_cart_styling['button_border_radius'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_radius'] : ''; $button_border = isset( $ct_catcbfw_add_to_cart_styling['button_border'] ) ? $ct_catcbfw_add_to_cart_styling['button_border'] : ''; $button_border_padding_left = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] : ''; $button_border_padding_top = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] : ''; $button_border_padding_bottom = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] : ''; $button_border_padding_right = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] : ''; $button_border_margin_left = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_left'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_left'] : ''; $button_border_margin_top = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_top'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_top'] : ''; $button_border_margin_bottom = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_bottom'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_bottom'] : ''; $button_border_margin_right = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_right'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_right'] : ''; ?> ' . esc_attr( $button_text ) . ''; $button = '' . $button_text . ''; } if ( 'variable' === (string) $product->get_type() ) { foreach ( $product->get_children() as $product_id ) { $bundle_detail = $this->cloud_catcfw_check_product_match_all_rule_or_not( $product_id ); if ( isset( $bundle_detail['rule_id'] ) ) { $rule_id = $bundle_detail['rule_id']; $icon = ''; if ( ! empty( get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) ) ) { $icon = ''; if ( 'upload_custom_icon' === (string) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_uploaded_icon', true ) ) { $icon = ''; } if ( 'custom_icon_class' === (string) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_icon_class', true ) ) { $icon = ''; } } $button_text = str_replace( '{icon}', $icon, get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_text', true ) ); $ct_catcbfw_add_to_cart_styling = (array) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_styling', true ); $button_text_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_color'] : ''; $button_text_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] : ''; $button_text_hover_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] : ''; $button_text_hover_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] : ''; $button_border_color = isset( $ct_catcbfw_add_to_cart_styling['button_border_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_color'] : ''; $button_font_size = isset( $ct_catcbfw_add_to_cart_styling['button_font_size'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_size'] : 14; $button_font_weight = isset( $ct_catcbfw_add_to_cart_styling['button_font_weight'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_weight'] : '100'; $button_border_radius = isset( $ct_catcbfw_add_to_cart_styling['button_border_radius'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_radius'] : ''; $button_border = isset( $ct_catcbfw_add_to_cart_styling['button_border'] ) ? $ct_catcbfw_add_to_cart_styling['button_border'] : ''; $button_border_padding_left = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] : ''; $button_border_padding_top = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] : ''; $button_border_padding_bottom = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] : ''; $button_border_padding_right = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] : ''; $button_border_margin_left = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_left'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_left'] : ''; $button_border_margin_top = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_top'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_top'] : ''; $button_border_margin_bottom = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_bottom'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_bottom'] : ''; $button_border_margin_right = isset( $ct_catcbfw_add_to_cart_styling['button_border_margin_right'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_margin_right'] : ''; ?> ' . esc_attr( $button_text ) . ''; $button = '' . $button_text . ''; break; } } } return $button; } /** * Text With Styling. * * @param string $text set here button. */ public function cloud_catcfw_woocommerce_add_to_cart_button_text( $text ) { global $product; $bundle_detail = $this->cloud_catcfw_check_product_match_all_rule_or_not( $product->get_id() ); if ( isset( $bundle_detail['rule_id'] ) ) { $rule_id = $bundle_detail['rule_id']; ob_start(); echo wp_kses_post( $this->catcfw_get_add_cart_button_text( $bundle_detail['rule_id'] ) ); $text = ob_get_clean(); } if ( 'variable' === (string) $product->get_type() ) { foreach ( $product->get_children() as $product_id ) { $bundle_detail = $this->cloud_catcfw_check_product_match_all_rule_or_not( $product_id ); if ( isset( $bundle_detail['rule_id'] ) ) { $rule_id = $bundle_detail['rule_id']; ob_start(); echo wp_kses_post( $this->catcfw_get_add_cart_button_text( $bundle_detail['rule_id'] ) ); $text = ob_get_clean(); break; } } } return $text; } /** * Get Text of Add to cart button. * * @param Int $rule_id Active rule id. */ public function catcfw_get_add_cart_button_text( $rule_id ) { $icon = ''; if ( ! empty( get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) ) ) { $icon = ''; if ( 'upload_custom_icon' === get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_uploaded_icon', true ) ) { $icon = ''; } if ( 'custom_icon_class' === get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_icon', true ) && get_post_meta( $rule_id, 'ct_catcbfw_add_to_crt_btn_icon_class', true ) ) { $icon = ''; } } $button_text = str_replace( '{icon}', $icon, get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_button_text', true ) ); $ct_catcbfw_add_to_cart_styling = (array) get_post_meta( $rule_id, 'ct_catcbfw_add_to_cart_styling', true ); $button_text_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_color'] : ''; $button_text_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_bgcolor'] : ''; $button_text_hover_color = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_color'] : ''; $button_text_hover_bgcolor = isset( $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] ) ? $ct_catcbfw_add_to_cart_styling['button_text_hover_bgcolor'] : ''; $button_border_color = isset( $ct_catcbfw_add_to_cart_styling['button_border_color'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_color'] : ''; $button_font_size = isset( $ct_catcbfw_add_to_cart_styling['button_font_size'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_size'] : 14; $button_font_weight = isset( $ct_catcbfw_add_to_cart_styling['button_font_weight'] ) ? $ct_catcbfw_add_to_cart_styling['button_font_weight'] : '100'; $button_border_radius = isset( $ct_catcbfw_add_to_cart_styling['button_border_radius'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_radius'] : ''; $button_border = isset( $ct_catcbfw_add_to_cart_styling['button_border'] ) ? $ct_catcbfw_add_to_cart_styling['button_border'] : ''; $button_border_padding_left = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_left'] : ''; $button_border_padding_top = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_top'] : ''; $button_border_padding_bottom = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_bottom'] : ''; $button_border_padding_right = isset( $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] ) ? $ct_catcbfw_add_to_cart_styling['button_border_padding_right'] : ''; ?> ' . esc_attr( $button_text ) . ''; return $button_text; } /** * Rule is applicable on current product or not. * * @param int $product_id The ID of the current product. */ public function cloud_catcfw_check_product_match_all_rule_or_not( $product_id ) { $user_role = is_user_logged_in() ? (string) current( wp_get_current_user()->roles ) : 'guest'; $old_selected_prd = (array) get_post_meta( $product_id, 'ct_catcbfw_selected_chain_prd', true ); $old_selected_prd = array_filter( $old_selected_prd ); $flag = false; if ( ! empty( get_post_meta( $product_id, 'ct_catcbfw_add_to_cart_button_text', true ) ) && ! empty( get_post_meta( $product_id, 'ct_catcbfw_enable_add_to_cart_styling', true ) ) ) { $selected_user_role = get_post_meta( $product_id, 'ct_catcbfw_select_user_from_switch', true ) ? (array) get_post_meta( $product_id, 'ct_catcbfw_select_user_from_switch', true ) : array( $user_role ); if ( ! in_array( (string) $user_role, $selected_user_role, true ) ) { return; } $selected_pages = (array) get_post_meta( $product_id, 'ct_catcbfw_select_pages', true ); $selected_pages = array_filter( $selected_pages ); if ( count( $selected_pages ) >= 1 ) { if ( is_shop() && ! in_array( 'shop', $selected_pages, true ) ) { returnarray(); } if ( is_single() && ! in_array( 'product_page', $selected_pages, true ) ) { returnarray(); } if ( is_product_category() && ! in_array( 'category_page', $selected_pages, true ) ) { returnarray(); } if ( is_product_tag() && ! in_array( 'tag_page', $selected_pages, true ) ) { returnarray(); } } return array( 'rule_id' => $product_id ); } else { $get_rules = (array) self::cloud_get_post( 'ct_cstm_add_t_c_btn' ); if ( count( $get_rules ) >= 1 ) { foreach ( $get_rules as $current_rule_id ) { if ( $current_rule_id ) { if ( empty( get_post_meta( $current_rule_id, 'ct_catcbfw_add_to_cart_button_text', true ) ) ) { continue; } $selected_pages = (array) get_post_meta( $current_rule_id, 'ct_catcbfw_select_pages', true ); $selected_pages = array_filter( $selected_pages ); if ( count( $selected_pages ) >= 1 ) { if ( is_shop() && ! in_array( 'shop', $selected_pages, true ) ) { continue; } if ( is_single() && ! in_array( 'product_page', $selected_pages, true ) ) { continue; } if ( is_product_category() && ! in_array( 'category_page', $selected_pages, true ) ) { continue; } if ( is_product_tag() && ! in_array( 'tag_page', $selected_pages, true ) ) { continue; } } $selected_user_role = get_post_meta( $current_rule_id, 'ct_catcbfw_select_user_from_switch', true ) ? (array) get_post_meta( $current_rule_id, 'ct_catcbfw_select_user_from_switch', true ) : array( $user_role ); $excluded_product = (array) get_post_meta( $current_rule_id, 'ct_catcbfw_product_exclusion_list', true ); $excluded_product = array_filter( $excluded_product ); $included_product = (array) get_post_meta( $current_rule_id, 'ct_catcbfw_product_included_list', true ); $included_product = array_filter( $included_product ); $selected_categorie = (array) get_post_meta( $current_rule_id, 'ct_catcbfw_included_category', true ); $selected_categorie = array_filter( $selected_categorie ); $selected_tags = (array) get_post_meta( $current_rule_id, 'ct_catcbfw_product_tags', true ); $selected_tags = array_filter( $selected_tags ); if ( count( $excluded_product ) >= 1 && in_array( (string) $product_id, $excluded_product, true ) ) { continue; } if ( ! in_array( (string) $user_role, $selected_user_role, true ) ) { continue; } if ( count( $selected_categorie ) < 1 && count( $included_product ) < 1 && count( $selected_tags ) < 1 ) { $flag = true; } if ( in_array( (string) $product_id, $included_product, true ) ) { $flag = true; } foreach ( $selected_categorie as $cat_id ) { if ( $cat_id && has_term( $cat_id, 'product_cat', $product_id ) ) { $flag = true; } } if ( count( $selected_tags ) >= 1 && has_term( $selected_tags, 'product_tag', $product_id ) ) { $flag = true; } if ( $flag ) { return array( 'rule_id' => $current_rule_id ); } } } } } return array(); } /** * Getting post of current post type. * * @param string $post_type post type to get ids of this post type. */ public static function cloud_get_post( $post_type ) { return get_posts( array( 'post_type' => $post_type, 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids', ) ); } } /** * Class Object . */ new Catcbfw_Front(); }