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":529719,"date":"2021-08-22T12:30:26","date_gmt":"2021-08-22T17:30:26","guid":{"rendered":"https:\/\/dev2025.infinitekparis.com\/?p=529719"},"modified":"2021-10-20T12:14:12","modified_gmt":"2021-10-20T17:14:12","slug":"5-things-you-didnt-know-about-vitaminc","status":"publish","type":"post","link":"https:\/\/dev2025.infinitekparis.com\/us-en\/blog\/products\/5-things-you-didnt-know-about-vitaminc\/","title":{"rendered":"5 Things You Didn’t Know About Vitamin C"},"content":{"rendered":"
\n\n\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t\n

Vitamin C is a powerful antioxidant that not only protects your skin but also neutralizes free radicals, because of its antioxidant properties, Vitamin C helps in your skin\u2019s natural regeneration process, repairing damaged skin cells releasing a boost of collagen and elastin to the body. <\/span><\/p>\n

This wonderful ingredient has numerous clinical studies showing its effectiveness, therefore reinforcing its popularity, as it reduces and balances skin pigmentation (for example, age spots or sun spots).<\/span><\/p>\n

Today, we tell you 5 things that you may not know about Vitamin C.<\/span><\/h2>\n
    \n
  1. It works as a Protective Shield:<\/strong> We are constantly exposed to factors that accelerate aging, such as solar radiation, tobacco, and stress, triggering cell oxidation and inflammation. Vitamin C is well known for its antioxidant capacity which stops the action of free radicals on these cells slowing down the oxidation process.<\/li>\n
  2. Kiss that dullness Goodbye!<\/strong> If your skin looks dull, lifeless or has spots, Vitamin C will be without a doubt your best ally, it illuminates and unifies the skin tone, providing protection, and cell regeneration against free radicals, pollution and sun damage.<\/li>\n
  3. Provides great protection:<\/strong> Vitamin C is also known as Ascorbic Acid and, in its pure state, it is a very unstable molecule that is easy to oxidize. Therefore, its formulation is key to be effective in cosmetics. It acts on the skin through chemical reactions that work to promote collagen production, helping to retexturize the skin for a firmer and smoother appearance.<\/li>\n
  4. Myth!<\/strong> The Vitamin C concentration in a serum must be between 10% and 20% to really appreciate its cosmetic benefits, which is completely FALSE! This will depend on the final product and its objective.<\/li>\n
  5. More is not always better!<\/strong> When Vitamin C has high concentrations, it can decrease its absorption in the skin causing adverse effects, such as altering its balance and reducing its effectiveness due to the tension between free radicals and its antioxidant power.<\/li>\n<\/ol>\n

    Did you know that the Vitamin C<\/a> from Infinitek Paris has an advanced technology that enhances the effects on the skin?<\/span><\/h2>\n

    Infinitek Paris has developed an innovative and exclusive formula rich in antioxidants, it contains: Vitamin C, Vitamin E, Ferulic Acid, Hyaluronic Acid and Organic Silicon; whose effects are enhanced by the Silanol technology, allowing maximum results. <\/span><\/p>\n

    The combination of these ingredients form an effective, high-tech synergy that increases the absorption of our serum, reaching into the deepest layers of the skin.<\/span><\/p>\n

    Scientific studies have shown that, with a concentration of 3% of the intelligent active (Vitamin C + Organic Silicium), the effectiveness increases, preventing the formation of dark spots and fulfilling its antioxidant effect. In addition to demonstrating results of hydration, restructuring and firmness. <\/span><\/p>\n

    Learn the benefits of using Vitamin C + Organic Silicium Serum every day<\/span><\/h2>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t\n\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\"\"\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\t\t\n