/** * Misc funcitons */ /** * Get min/max price for WooCommerce products */ function jet_smart_filters_woo_prices( $args = array() ) { global $wpdb; if ( ! function_exists( 'wc' ) ) { return false; } $wc_query = wc()->query->get_main_query(); $tax_query = array(); if ( $wc_query ) { $wc_queried_object = $wc_query->queried_object; if ( ! empty( $wc_queried_object->taxonomy ) && ! empty( $wc_queried_object->term_id ) ) { $tax_query[] = array( 'taxonomy' => $wc_queried_object->taxonomy, 'terms' => array( $wc_queried_object->term_id ), 'field' => 'term_id', ); } } $tax_query = new WP_Tax_Query( $tax_query ); $tax_query_sql = $tax_query->get_sql( $wpdb->posts, 'ID' ); $sql = "SELECT min( FLOOR( price_meta.meta_value ) ) as min, max( CEILING( price_meta.meta_value ) ) as max FROM {$wpdb->posts} "; $sql .= " LEFT JOIN {$wpdb->postmeta} as price_meta ON {$wpdb->posts}.ID = price_meta.post_id " . $tax_query_sql['join']; $sql .= " WHERE {$wpdb->posts}.post_type IN ('" . implode( "','", array_map( 'esc_sql', apply_filters( 'woocommerce_price_filter_post_type', array( 'product' ) ) ) ) . "') AND {$wpdb->posts}.post_status = 'publish' AND price_meta.meta_key IN ('" . implode( "','", array_map( 'esc_sql', apply_filters( 'woocommerce_price_filter_meta_keys', array( '_price' ) ) ) ) . "') AND price_meta.meta_value > '' "; $sql .= $tax_query_sql['where']; if ( $wc_query ) { $search = WC_Query::get_main_search_query_sql(); } else { $search = false; } if ( $search ) { $sql .= ' AND ' . $search; } $price = $wpdb->get_row( $sql, ARRAY_A ); if ( class_exists( 'woocommerce_wpml' ) ){ $price['min'] = apply_filters( 'wcml_raw_price_amount', floatval( $price['min'] ) ); $price['max'] = apply_filters( 'wcml_raw_price_amount', floatval( $price['max'] ) ); } return $price; // WPCS: unprepared SQL ok. } /** * Callback to get min/max value for meta key */ function jet_smart_filters_meta_values( $args = array() ) { $key = ! empty( $args['key'] ) ? $args['key'] : false; if ( ! $key ) { return array(); } global $wpdb; $queried_object = get_queried_object(); $tax_query = array(); if ( ! empty( $queried_object->taxonomy ) && ! empty( $queried_object->term_id ) ) { $tax_query[] = array( 'taxonomy' => $queried_object->taxonomy, 'terms' => array( $queried_object->term_id ), 'field' => 'term_id', ); } $tax_query = new WP_Tax_Query( $tax_query ); $tax_query_sql = $tax_query->get_sql( 'pm', 'post_id' ); $search_in_statuses = apply_filters( 'jet-smart-filters/dynamic-min-max/search-statuses', array( 'publish' ) ); $search_in_statuses = implode( ', ', array_map( function( $status ) { return '\'' . $status . '\''; }, $search_in_statuses ) ); $sql = "SELECT min( FLOOR( pm.meta_value ) ) as min, max( CEILING( pm.meta_value ) ) as max FROM $wpdb->postmeta AS pm"; $sql .= " INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id"; $sql .= $tax_query_sql['join']; $sql .= " WHERE pm.meta_key IN ('" . str_replace( ',', '\',\'', str_replace( ' ', '', $key ) ) . "')"; $sql .= " AND p.post_status IN ( $search_in_statuses )"; $sql .= $tax_query_sql['where']; $data = $wpdb->get_results( $sql, ARRAY_A ); if ( ! empty( $data ) ) { return $data[0]; } else { return array(); } } /** * Callback to get min/max value for meta key */ function jet_smart_filters_term_meta_values( $args = array() ) { $key = ! empty( $args['key'] ) ? $args['key'] : false; if ( ! $key ) { return array(); } global $wpdb; $sql = "SELECT min( FLOOR( tm.meta_value ) ) as min, max( CEILING( tm.meta_value ) ) as max FROM $wpdb->termmeta AS tm"; $sql .= " WHERE tm.meta_key IN ('" . str_replace( ',', '\',\'', str_replace( ' ', '', $key ) ) . "')"; $data = $wpdb->get_results( $sql, ARRAY_A ); if ( ! empty( $data ) ) { return $data[0]; } else { return array(); } } /** * Callback to get min/max value for meta key */ function jet_smart_filters_user_meta_values( $args = array() ) { $key = ! empty( $args['key'] ) ? $args['key'] : false; if ( ! $key ) { return array(); } global $wpdb; $sql = "SELECT min( FLOOR( um.meta_value ) ) as min, max( CEILING( um.meta_value ) ) as max FROM $wpdb->usermeta AS um"; $sql .= " WHERE um.meta_key IN ('" . str_replace( ',', '\',\'', str_replace( ' ', '', $key ) ) . "')"; $data = $wpdb->get_results( $sql, ARRAY_A ); if ( ! empty( $data ) ) { return $data[0]; } else { return array(); } } /** * Returns current currency symbol */ function jet_smart_filters_woo_currency_symbol() { $currency = apply_filters( 'jet-smart-filters/woocommerce/currency-symbol', get_woocommerce_currency_symbol() ); return $currency; } /** * Do macros inside string */ function jet_smart_filters_macros( $string, $field_value = null ) { $macros = apply_filters( 'jet-smart-filters/macros/macros-list', array( 'woocommerce_currency_symbol' => 'jet_smart_filters_woo_currency_symbol', ) ); return preg_replace_callback( '/%([a-z_-]+)(\|[a-z0-9_-]+)?%/', function ( $matches ) use ( $macros, $field_value ) { $found = $matches[1]; if ( ! isset( $macros[ $found ] ) ) { return $matches[0]; } $cb = $macros[ $found ]; if ( ! is_callable( $cb ) ) { return $matches[0]; } $args = isset( $matches[2] ) ? ltrim( $matches[2], '|' ) : false; return call_user_func( $cb, $field_value, $args ); }, $string ); }
Warning: session_start(): Session cannot be started after headers have already been sent in /srv/users/benmetcalfe/apps/ewc/public/wp-content/plugins/jet-data-importer/jet-data-importer.php on line 371
/** * Class: Jet_Woo_Builder_Checkout_Payment * Name: Checkout Payment * Slug: jet-checkout-payment */ namespace Elementor; use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Typography; if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly class Jet_Woo_Builder_Checkout_Payment extends Jet_Woo_Builder_Base { public function get_name() { return 'jet-checkout-payment'; } public function get_title() { return __( 'Checkout Payment', 'jet-woo-builder' ); } public function get_icon() { return 'jet-woo-builder-icon-checkout-payment'; } public function get_jet_help_url() { return 'https://crocoblock.com/knowledge-base/articles/jetwoobuilder-how-to-create-a-checkout-page-template/'; } public function show_in_panel() { return jet_woo_builder()->documents->is_document_type( 'checkout' ); } protected function register_controls() { $css_scheme = apply_filters( 'jet-woo-builder/jet-checkout-payment/css-scheme', [ 'label' => '#payment .wc_payment_method label', 'items-wrapper' => '#payment ul.payment_methods', 'item' => '#payment ul.payment_methods li', 'description' => '#payment .payment_box', 'button' => '#payment #place_order', 'button-wrapper' => '#payment div.form-row', ] ); $this->start_controls_section( 'checkout_payment_general_styles_section', [ 'label' => __( 'General', 'jet-woo-builder' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); jet_woo_builder_common_controls()->register_wc_style_warning( $this ); $this->add_control( 'checkout_payment_background', [ 'label' => __( 'Background Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} #payment' => 'background-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'checkout_payment_border', 'label' => __( 'Border', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} #payment', ] ); $this->add_responsive_control( 'checkout_payment_border_radius', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Border Radius', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} #payment' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'checkout_payment_item_styles_section', [ 'label' => __( 'Items', 'jet-woo-builder' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'checkout_payment_label_heading', [ 'label' => __( 'Labels', 'jet-woo-builder' ), 'type' => Controls_Manager::HEADING, ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'checkout_payment_heading_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['label'], ] ); $this->add_control( 'checkout_payment_heading_color', [ 'type' => Controls_Manager::COLOR, 'label' => __( 'Color', 'jet-woo-builder' ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['label'] => 'color: {{VALUE}}', ], ] ); $this->add_control( 'checkout_payment_heading_background', [ 'label' => __( 'Background Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['item'] => 'background-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'checkout_payment_heading_border', 'label' => __( 'Border', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} ' . $css_scheme['item'], ] ); $this->add_responsive_control( 'checkout_payment_heading_border_radius', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Border Radius', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['item'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_heading_margin', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Margin', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['item'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['label'] => 'margin: 0;', ], ] ); $this->add_responsive_control( 'checkout_payment_heading_padding', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Padding', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['item'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_heading_align', [ 'label' => __( 'Alignment', 'jet-woo-builder' ), 'type' => Controls_Manager::CHOOSE, 'options' => jet_woo_builder_tools()->get_available_h_align_types(), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['item'] => 'text-align: {{VALUE}}', ], 'classes' => 'elementor-control-align', ] ); $this->add_control( 'checkout_payment_items_wrapper_heading', [ 'label' => __( 'Wrapper', 'jet-woo-builder' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'checkout_payment_items_wrapper_border', 'label' => __( 'Border', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} ' . $css_scheme['items-wrapper'], ] ); $this->add_responsive_control( 'checkout_payment_items_wrapper_border_radius', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Border Radius', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['items-wrapper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_items_wrapper_margin', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Margin', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['items-wrapper'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_items_wrapper_padding', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Padding', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['items-wrapper'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'checkout_payment_description_styles_section', [ 'label' => __( 'Description', 'jet-woo-builder' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'checkout_payment_content_typography', 'label' => esc_html__( 'Typography', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} ' . $css_scheme['description'], ) ); $this->add_control( 'checkout_payment_content_color', array( 'label' => esc_html__( 'Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['description'] => 'color: {{VALUE}}', ), ) ); $this->add_control( 'checkout_payment_content_background', [ 'type' => Controls_Manager::COLOR, 'label' => __( 'Background Color', 'jet-woo-builder' ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['description'] => 'background-color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['description'] . ':before' => 'border-bottom-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), array( 'name' => 'checkout_payment_content_border', 'label' => esc_html__( 'Border', 'jet-woo-builder' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['description'], ) ); $this->add_responsive_control( 'checkout_payment_content_border_radius', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Border Radius', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['description'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_content_padding', [ 'label' => __( 'Padding', 'jet-woo-builder' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['description'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'checkout_payment_button_styles', array( 'label' => esc_html__( 'Button', 'jet-woo-builder' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_responsive_control( 'button_width', [ 'type' => Controls_Manager::SLIDER, 'label' => __( 'Width', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', '%' ] ), 'range' => [ '%' => [ 'min' => 10, 'max' => 100, ], 'px' => [ 'min' => 50, 'max' => 500, ], ], 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['button'] => 'width: {{SIZE}}{{UNIT}}', ], ] ); jet_woo_builder_common_controls()->register_button_style_controls( $this, 'checkout_payment', $css_scheme['button'] ); $this->add_control( 'checkout_payment_button_wrapper_heading', [ 'label' => __( 'Wrapper', 'jet-woo-builder' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'checkout_payment_button_wrapper_border', 'label' => __( 'Border', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} ' . $css_scheme['button-wrapper'], ] ); $this->add_responsive_control( 'checkout_payment_button_wrapper_border_radius', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Border Radius', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['button-wrapper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_button_wrapper_margin', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Margin', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['button-wrapper'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'checkout_payment_button_wrapper_padding', [ 'type' => Controls_Manager::DIMENSIONS, 'label' => __( 'Padding', 'jet-woo-builder' ), 'size_units' => $this->set_custom_size_unit( [ 'px', 'em', '%' ] ), 'selectors' => [ '{{WRAPPER}} ' . $css_scheme['button-wrapper'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'checkout_payment_info_box_styles', [ 'label' => __( 'Info Box', 'jet-woo-builder' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'checkout_payment_info_box_typography', 'label' => __( 'Typography', 'jet-woo-builder' ), 'selector' => '{{WRAPPER}} .woocommerce-privacy-policy-text, {{WRAPPER}} .woocommerce-terms-and-conditions-checkbox-text', ] ); $this->add_control( 'checkout_payment_info_box_color', [ 'label' => __( 'Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .woocommerce-privacy-policy-text, {{WRAPPER}} .woocommerce-terms-and-conditions-checkbox-text' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'checkout_payment_info_box_link_heading', [ 'label' => __( 'Links', 'jet-woo-builder' ), 'type' => Controls_Manager::HEADING, ] ); $this->start_controls_tabs( 'checkout_payment_info_box_link_styles_tabs' ); $this->start_controls_tab( 'checkout_payment_info_box_link_styles_normal_tab', [ 'label' => __( 'Normal', 'jet-woo-builder' ), ] ); $this->add_control( 'checkout_payment_info_box_links_color', [ 'label' => __( 'Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .woocommerce-privacy-policy-text a, {{WRAPPER}} .woocommerce-terms-and-conditions-checkbox-text a' => 'color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'checkout_payment_info_box_link_styles_hover_tab', [ 'label' => __( 'Hover', 'jet-woo-builder' ), ] ); $this->add_control( 'checkout_payment_info_box_links_hover_color', [ 'label' => __( 'Color', 'jet-woo-builder' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .woocommerce-privacy-policy-text a:hover, {{WRAPPER}} .woocommerce-terms-and-conditions-checkbox-text a:hover' => 'color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } protected function render() { // Add filters before displaying our Widget. // Set editor & preview payment. add_filter( 'woocommerce_cart_needs_payment', [ $this, 'maybe_set_cart_needs_payment' ] ); $this->__open_wrap(); woocommerce_checkout_payment(); $this->__close_wrap(); // Remove filters after displaying our Widget. remove_filter( 'woocommerce_cart_needs_payment', [ $this, 'maybe_set_cart_needs_payment' ] ); } /** * Set required payments for widget in editor and preview areas. * * @since 1.12.0 * * @param $required * * @return bool|mixed */ public function maybe_set_cart_needs_payment( $required ) { if ( jet_woo_builder()->elementor_views->in_elementor() ) { $required = true; } return $required; } } Unlock Your Skin’s Potential with O Cosmedics: A Comprehensive Guide to Professional Treatments | Essence Wellness Clinic

Unlock Your Skin’s Potential with O Cosmedics: A Comprehensive Guide to Professional Treatments

Achieving healthy, glowing skin is a journey involving both in-clinic treatments and a dedicated at-home skincare regimen. The O Cosmedics O Pro Dermal Planning (PDP) series offers an array of professional treatments tailored to address specific skin concerns, making it suitable for all skin types. Let’s explore the transformative power of these advanced treatments and how they effectively address various skin issues.

The Importance of Professional Treatments

While a prescribed O Cosmedics at-home routine is crucial for maintaining results, true skin transformation begins with professional treatments. The O Pro Dermal Planning series offers corrective treatments that use enzyme, peptide, and acid peels. Under the guidance of a trained skin therapist, these treatments optimize cell function, enhance skin health, and restore youthful radiance.

Course Structure

A standard treatment course consists of weekly sessions over 6 to 8 weeks, with each session focusing on recharging skin cells and rebalancing their activity. After completing the intensive course, monthly maintenance treatments are recommended to sustain and enhance the results.

What to Expect During Your Treatment

Each session typically lasts 30 to 45 minutes and includes the following steps:

  1. Deep Cleansing
    Removes impurities and prepares the skin for treatment.
  2. Exfoliation
    Gentle exfoliation eliminates dead skin cells, allowing better absorption of active ingredients.
  3. Customized Peel
    Tailored to your skin’s needs. In advanced cases, a double peel may be used for enhanced results.
  4. Alginate Rubber Mask
    Applied to cool and soothe the skin, tighten pores, and improve blood circulation.

Together, these elements enhance skin health, radiance, and overall complexion, delivering visible improvements.

O Pro Dermal Planning Series Peels

The series offers six signature peels, each addressing specific skin concerns:

  1. Pumpkin Enzyme Peel
    Ideal for sun-damaged or aging skin, using 30% pumpkin enzymes and natural fruit acids to renew the skin and improve hydration.
  2. Pomegranate Enzyme Peel
    Suitable for sensitive skin. This peel digests dead cells while hydrating and reducing inflammation. It’s great for beginners or as part of a double peel.
  3. Catalyst Retinol Peel
    Concentrated retinol and fruit acids target aging and UV damage, refining skin texture for overall repair.
  4. Oxygenating Enzyme Peel
    Perfect for tired skin, this peel enhances hydration and cell renewal, leaving the skin plump and revitalized.
  5. Bio-White Peptide Peel
    Combines vitamin C and peptides to address pigmentation and uneven tones, while protecting collagen and elastin.
  6. Alpha-Beta Peel
    Ideal for oily or problematic skin, this peel uses lactic acid, salicylic acid, AHAs, and niacinamide to reduce fine lines, uneven pigmentation, and boost clarity.

Who Can Benefit?

The O Pro Dermal Planning series is suitable for all skin types. Whether you’re targeting aging signs, hyperpigmentation, uneven skin tone, or simply seeking a brighter complexion, these treatments can be customized to meet your unique needs.

Maintaining Your Results

For long-lasting results, it is essential to follow your in-clinic treatments with a prescribed O Cosmedics at-home regimen. Consistency is key to achieving your skincare goals. Additionally, use sun protection to prevent sun damage, particularly after treatments that increase sun sensitivity.

Conclusion

Achieving and maintaining healthy, glowing skin is within reach for everyone. The O Cosmedics O Pro Dermal Planning series provides a comprehensive skincare approach, combining professional treatments with effective at-home routines. By investing in your skin’s health, you can enjoy a radiant, youthful complexion that reflects your inner beauty.

Embrace the journey to better skin and experience the transformative power of professional skincare today!

Search

My Account

Login

Register

Registration disabled