use FacebookAds\Api; use FacebookAds\Object\Business; use Brick\PhoneNumber\PhoneNumber; use Brick\PhoneNumber\PhoneNumberParseException; add_action('wp_ajax_nopriv_hubspot_channel_notification', 'hubspot_channel_notification'); function hubspot_channel_notification(){ wp_die(); } add_action('wp_ajax_nopriv_get_whatsapp_template_from_hubspot', 'get_whatsapp_template_from_hubspot'); function get_whatsapp_template_from_hubspot(){ global $log; $input = json_decode(file_get_contents('php://input')); // $log->add(__FUNCTION__, "========================="); // $log->add(__FUNCTION__, 'input - ' . print_r( $input, true )); $inputFieldName = $input->inputFieldName; $inputFields = $input->inputFields; $result = new stdClass(); $result->options = new stdClass(); $options = false; $use_transient = false; if( isset( $inputFields->whatsapp_origin_number->value ) && isset( $inputFields->whatsapp_template->value ) ){ $transient_name = 'whatsapp_template_from_hubspot_' . $inputFieldName . $inputFields->whatsapp_origin_number->value . '_' . $inputFields->whatsapp_template->value; $use_transient = true; } else { $transient_name = 'whatsapp_template_from_hubspot_' . $inputFieldName; } if( $use_transient ){ $options = get_transient( $transient_name ); } // if( !$options){ $options = []; if( $inputFieldName == 'whatsapp_origin_number' ){ Api::init(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' )); $business = new Business(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_business_id' )); $owned_wabas = $business->getOwnedWhatsAppBusinessAccounts(); foreach( $owned_wabas as $waba) { $waba_account = New Whatsapp_Business_Account( $waba->id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $numbers = $waba_account->get_numbers(); foreach( $numbers->data as $number ){ $response = new stdClass(); $response->label = $number->verified_name; $response->description = $number->display_phone_number; $response->value = $waba->id. '|' .$number->id; $options[] = $response; // $options[ $number->verified_name.' ( '.$number->display_phone_number.' )' ] = $waba->id. '|' .$number->id; } } } if( $inputFieldName == 'whatsapp_template' ){ if( isset( $inputFields->whatsapp_origin_number->value ) ) { Api::init(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' )); $business = new Business(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_business_id' )); $owned_wabas = $business->getOwnedWhatsAppBusinessAccounts(); // $options['Sin plantilla'] = 'no_template'; $selected = explode('|', $inputFields->whatsapp_origin_number->value); $waba_id = $selected[0]; $number_id = $selected[1]; $waba_account = New Whatsapp_Business_Account( $waba_id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $templates = $waba_account->get_templates(); $templates_found = false; foreach( $templates->data as $template ){ if( strpos( $template->name, 'hubspot' ) !== false || strpos( $template->name, 'difusion' ) !== false ){ $response = new stdClass(); $response->label = $template->name; $response->description = $template->category.'/'.$template->status.' - '. $template->language; $response->value = $template->name.'|'.$waba_id.'|'.$number_id.'|'.$template->language; $options[] = $response; $templates_found = true; } } if( !$templates_found ){ $response = new stdClass(); $response->label = 'No se encontraron plantillas'; $response->value = 'no_template'; $options[] = $response; } } } if( $inputFieldName == 'whatsapp_header_params_count' ){ if( isset( $inputFields->whatsapp_template->value ) ) { Api::init(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' )); $business = new Business(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_business_id' )); $selected = explode('|', $inputFields->whatsapp_template->value); $template_name = $selected[0]; $waba_id = $selected[1]; $number_id = $selected[2]; $language = $selected[3]; $waba_account = New Whatsapp_Business_Account( $waba_id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $template = $waba_account->get_template( $template_name ); // $log->add(__FUNCTION__, "========================="); // $log->add(__FUNCTION__, 'template - ' . print_r( $template, true )); $params_found = false; $supported_headers = [ 'IMAGE' => [ 'text' => 'URL de imágen', 'params' => 1 ], 'VIDEO' => [ 'text' => 'URL del video', 'params' => 1 ], 'DOCUMENT' => [ 'text' => 'URL del documento', 'params' => 1 ], 'TEXT' => [ 'text' => 'Texto', 'params' => 1 ], ]; foreach( $template->components as $component ){ if( $component->type == 'HEADER' ){ if( in_array( $component->format, array_keys( $supported_headers ) ) ){ $params_found = true; $response = new stdClass(); $response->label = $supported_headers[$component->format]['params'] . ' parámetros ('. $component->format .')'; if( $component->format == 'TEXT' ){ foreach( $component->example as $header_text ){ $params_desc = implode('|', $header_text ); $response->description = $params_desc; } } else { $response->description = $supported_headers[$component->format]['text']; } $response->value = $component->format; $options[] = $response; } } } if( !$params_found ){ $response = new stdClass(); $response->label = '0 parámetros'; $response->value = 'none'; $options[] = $response; } } } if( $inputFieldName == 'whatsapp_body_params_count' ){ if( isset( $inputFields->whatsapp_template->value ) ) { Api::init(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' )); $business = new Business(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_business_id' )); $selected = explode('|', $inputFields->whatsapp_template->value); $template_name = $selected[0]; $waba_id = $selected[1]; $number_id = $selected[2]; $language = $selected[3]; $waba_account = New Whatsapp_Business_Account( $waba_id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $template = $waba_account->get_template( $template_name ); $params_found = false; foreach( $template->components as $component ){ if( $component->type == 'BODY' && isset( $component->example->body_text ) && count( $component->example->body_text ) > 0 ){ foreach( $component->example->body_text as $body_text ){ $params_desc = implode('|', $body_text ); $params_found = true; $response = new stdClass(); $response->label = count( $body_text ) . ' parámetros'; $response->description = $params_desc; // $response->description = $component->text; $response->value = $component->type; $options[] = $response; } } } if( !$params_found ){ $response = new stdClass(); $response->label = '0 parámetros'; $response->value = 'none'; $options[] = $response; } } } if( $inputFieldName == 'whatsapp_footer_params_count' ){ if( isset( $inputFields->whatsapp_template->value ) ) { Api::init(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' )); $business = new Business(get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_business_id' )); $selected = explode('|', $inputFields->whatsapp_template->value); $template_name = $selected[0]; $waba_id = $selected[1]; $number_id = $selected[2]; $language = $selected[3]; $waba_account = New Whatsapp_Business_Account( $waba_id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $template = $waba_account->get_template( $template_name ); $params_found = false; $params_count = 0; $params_desc = []; foreach( $template->components as $component ){ if( $component->type == 'BUTTONS' ){ foreach( $component->buttons as $button ){ if( isset( $button->example ) ){ // $params_desc .= implode('|', $button->example ); $params_desc[] = $button->text . ' ('.$button->type.')'; $params_found = true; $params_count ++; } } if( $params_found ){ $response = new stdClass(); $response->label = $params_count . ' parámetros'; // $response->description = $params_desc; $response->description = implode('|', $params_desc ); $response->value = $component->type; $options[] = $response; } } } if( !$params_found ){ $response = new stdClass(); $response->label = '0 parámetros'; $response->value = 'none'; $options[] = $response; } } } if( $use_transient ){ set_transient( $transient_name, $options, HOUR_IN_SECONDS ); } // } $result->options = new stdClass(); $result->options = $options; // $log->add(__FUNCTION__, "========================="); // $log->add(__FUNCTION__, $inputFieldName . ' result - ' . print_r( $result, true )); // $log->add(__FUNCTION__, $inputFieldName . ' result - ' . json_encode( $result )); wp_send_json( $result, 200 ); } add_action('wp_ajax_nopriv_send_whatsapp_message_from_hubspot', 'send_whatsapp_message_from_hubspot'); function send_whatsapp_message_from_hubspot(){ global $log; $input = json_decode(file_get_contents('php://input')); // $log->add(__FUNCTION__, "========================="); // $log->add(__FUNCTION__, 'input - ' . print_r( $input, true )); $fields = $input->fields; $whatsapp_template = $fields->whatsapp_template; $whatsapp_destination_number = $fields->whatsapp_destination_number; $whatsapp_header_params_count = $fields->whatsapp_header_params_count; $whatsapp_header_params_content = isset($fields->whatsapp_header_params_content) ? $fields->whatsapp_header_params_content : ''; $whatsapp_body_params_count = $fields->whatsapp_body_params_count; $whatsapp_body_params_content = isset($fields->whatsapp_body_params_content) ? $fields->whatsapp_body_params_content : ''; $whatsapp_footer_params_count = $fields->whatsapp_footer_params_count; $whatsapp_footer_params_content = isset($fields->whatsapp_footer_params_content) ? $fields->whatsapp_footer_params_content : ''; $output = new stdClass(); $output->outputFields = new stdClass(); try { $number_info = bot_getPhoneNumberInfo( $whatsapp_destination_number ); if( !$number_info ){ // $log->add('error_' . __FUNCTION__, "========================="); // $log->add('error_' . __FUNCTION__, 'input - ' . print_r( $input, true )); $output->outputFields->errorCode = 'NUMBER_NOT_VALID'; $output->outputFields->whatsapp_destination_number = $fields->whatsapp_destination_number; $output->outputFields->hs_execution_state = "FAIL_CONTINUE"; // $log->add('error_' . __FUNCTION__, 'output ' . print_r( $output, true) ); wp_send_json( $output, 400 ); return; } $whatsapp_template = explode('|', $whatsapp_template); $template_name = $whatsapp_template[0]; $waba_id = $whatsapp_template[1]; $number_id = $whatsapp_template[2]; $template_language = $whatsapp_template[3]; // // $log->add(__FUNCTION__, 'template_name - ' . print_r( $template_name, true )); // // $log->add(__FUNCTION__, 'waba_id - ' . print_r( $waba_id, true )); // // $log->add(__FUNCTION__, 'number_id - ' . print_r( $number_id, true )); // // $log->add(__FUNCTION__, 'template_language - ' . print_r( $template_language, true )); $waba_account = New Whatsapp_Business_Account( $waba_id, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ), ); $template = $waba_account->get_template( $template_name ); // $log->add(__FUNCTION__, 'template - ' . print_r( $template, true )); $session = New Whatsapp_Session_Handler( str_replace("+", "", $number_info ) , $number_id, 'whatsapp_api' ); if ( ! $session->get_session() ) { /**Si no hay una sesion creada no salta el contacto actual */ $session->create_session(); } Whatsapp_Webhook_Payload::init($number_id, (string) $number_info); $wa_webhook = Whatsapp_Webhook_Payload::instance(); $wa_message_api = New Whatsapp_Message_Api( $wa_webhook, get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_id' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_secret' ), get_option( WHATSAPP_BOT_PLUGIN_PREFIX . 'facebook_app_token' ) ); $template_params = []; if( !empty( $whatsapp_header_params_content ) && !empty( $whatsapp_header_params_count ) && $whatsapp_header_params_count != 'none' ){ $template_params['header'][$whatsapp_header_params_count] = $whatsapp_header_params_content; } if( !empty( $whatsapp_body_params_content ) ){ $params = explode('|', $whatsapp_body_params_content); $params = array_map('trim', $params); $template_params['body'] = $params; } if( !empty( $whatsapp_footer_params_content ) ){ $params = explode('|', $whatsapp_footer_params_content); $params = array_map('trim', $params); $template_params['buttons'] = $params; } // $log->add(__FUNCTION__, 'template_params - ' . print_r( $template_params, true )); $components = $waba_account->prepare_components_v2($template_name , $template_params ); // $log->add(__FUNCTION__, 'components - ' . print_r( $components, true )); $result = $wa_message_api->send_template( $template_name, $template_language, $components['components'] ); // $log->add(__FUNCTION__, 'result - ' . print_r( $result, true )); try { $message_send = $waba_account->get_template_body( $template_name, $template_params ); $output->outputFields->message_send = $message_send; } catch (Exception $e) { $output->outputFields->message_send = 'Error: ' . $e->getMessage(); } if( isset($session) ){ $session->set_variable( 'outgoing_message_created', date( 'Y-m-d' ) ); $session->set_variable( 'outgoing_message_type', 'workflow' ); } $output->outputFields->message_id = $result; $output->outputFields->whatsapp_destination_number = $whatsapp_destination_number; $output->outputFields->hs_execution_state = "SUCCESS"; $output->outputFields->whatsapp_template_send = $template_name; $output->outputFields->whatsapp_template_params = $template_params; } catch (Exception $e) { $log->add('error_' . __FUNCTION__, "========================="); $log->add('error_' . __FUNCTION__, 'input - ' . print_r( $input, true )); $log->add('error_' . __FUNCTION__, 'whatsapp_template - ' . print_r( $whatsapp_template, true )); $log->add('error_' . __FUNCTION__, 'whatsapp_body_params_count - ' . print_r( $whatsapp_body_params_count, true )); $log->add('error_' . __FUNCTION__, 'whatsapp_destination_number - ' . print_r( $whatsapp_destination_number, true )); $log->add('error_' . __FUNCTION__, 'number_info - ' . print_r( $number_info, true )); $log->add('error_' . __FUNCTION__, 'template_params - ' . print_r( $template_params, true )); $log->add('error_' . __FUNCTION__, 'Exception - ' . print_r( $e->getMessage(), true )); $output->outputFields->errorCode = 'API_ERROR'; $output->outputFields->exceptionMessage = $e->getMessage(); $output->outputFields->hs_execution_state = "FAIL_CONTINUE"; wp_send_json( $output, 400 ); return; } wp_send_json( $output, 200 ); return; }{"id":370764,"date":"2020-09-18T11:07:53","date_gmt":"2020-09-18T16:07:53","guid":{"rendered":"https:\/\/dev2025.infinitekparis.com\/?p=370764"},"modified":"2021-10-20T11:58:19","modified_gmt":"2021-10-20T16:58:19","slug":"what-is-melasma-and-how-to-treat-it","status":"publish","type":"post","link":"https:\/\/dev2025.infinitekparis.com\/us-en\/blog\/skin\/what-is-melasma-and-how-to-treat-it\/","title":{"rendered":"What is melasma and how to treat it?"},"content":{"rendered":"
Melasma is a type of hyperpigmentation it normally appears as large dark patches on the face although other parts of the body can also be affected, it can be caused by the overproduction of melanin, sun exposure, ultraviolet light, the use of contraceptives, genetics, or during and after pregnancy. Melasma is more common in women, according to studies melasma affects 90% of women and only 10% of men.<\/p>\n
Types of Melasma
\nor hyperpigmentation<\/p>\n
There are three types:<\/p>\n
1. <\/span>Epidermal melasma that affects the top layer of skin and the hyperpigmentation is brown with well-defined borders.<\/span><\/p>\n<\/div>\n 2. <\/span>Dermal melasma that affects the deeper dermal layers of the skin and is characterized by blue-gray patches.<\/span><\/p>\n<\/div>\n 3. <\/span>Mixed melasma (a combination of epidermal and dermal) it shows as a brown-gray pigment.<\/span><\/p>\n<\/div>\n According to studies, dermal and mixed melasma are the most difficult types to treat.<\/p>\n This can be determined with \u201cWood light\u201d a subtype of ultraviolet light that allows the doctor to identify the state of your skin and the conditions that you may have.<\/p>\n<\/div>\n How to prevent<\/strong><\/span> Remember that sunscreen is the best anti-aging product, it prevents dark spots, premature aging and skin diseases like cancer. Sun protection is not just for sunny days, sun\u2019s rays affect the skin even on cloudy days, so give your skin the daily protection it needs.<\/p>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t Ultraviolet rays are everywhere (computers and smartphones) they are a constant danger to the skin, that is why we recommend to use a sunscreen with a broad spectrum protection, apply it after your daily skin-care routine and re-apply 2 per 3 times a day.<\/p>\n
\nhyperpigmentation?<\/span><\/strong><\/p>\n