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;
}
Kit De Verano - Infinitek Paris
Esta es una tienda de demostración para realizar pruebas — no se completará ningún pedido. Descartar
Saltar al contenido
Se agregó “Dúo Perfecto SÉRUMMIX” a tu carrito.
Ver carrito
$ 131.70 USD $ 154.99 USD Ahorra $ 23.29 USD
Los esenciales que tu piel necesita estas vacaciones, protege, hidrata y luce un look natural.
Sérum Vitamina C + Silicio Orgánico. Promueve la Renovación Celular para una Apariencia más Sana y Joven.
Sérum Ácido Hialurónico + Silicio Orgánico . Hidrata, reafirma y suaviza
Protector Solar Ultra-Protection SPF 50. Protege tu piel contra los rayos solares UVB, UVA, luz azul y artificial.
Infinit-Ink. Tinta para labios y mejillas con Ácido Hialurónico y Bixa Orellana, Resistente a besos y sin transferencia.
Luxury Lip Balm. Voluminizador de labios con Ácido Hialurónico. Nutre, repara y renueva, para unos labios más jóvenes.
Ingredientes Activos Dermatológicamente Probados
Con estos productos tendrás el kit de protección e hidratación perfecto para el verano y lucir una piel radiante
Sérum Vitamina C + Silicio Orgánico . Su fórmula inteligente fortalece la piel, combate los efectos de los radicales libres, la contaminación y el daño solar, principales causantes del envejecimiento prematuro de la piel. Mejora y previene la apariencia de manchas, arrugas, líneas finas y pérdida de firmeza. Actúa como un potenciador de la luminosidad, mejorando y aclarando el tono de la piel, revelándola renovada, radiante y juvenil.
Sérum Ácido Hialurónico + Silicio Orgánico . Brinda una hidratación intensa y duradera. Disminuye y previene la apariencia de arrugas y líneas finas. Visiblemente mejora el grosor y la textura; para una piel más densa, resistente y flexible; capaz de combatir los efectos de los radicales libres, el estrés y la fatiga. Rellena y reafirma, para una apariencia más joven y saludable.
Protector Solar Ultra Protection SPF 50 . Brinda una protección de amplio espectro contra los rayos UVA, UVB y Luz Azul, previniendo y mejorando los signos del envejecimiento como las manchas oscuras y el riesgo de cáncer de piel. Además de proteger e hidratar funciona como Primer Facial con acabado mate.
Infinit-Ink . Tinta para labios y mejillas con ácido hialurónico y bixa orellana. Su exclusiva fórmula multifunción maquilla de manera natural, mientras hidrata y mantiene la juventud de la piel. Su aplicación es gradual, de un tono natural a un tono más profundo. Cuantas más capas de aplicación, más profunda y duradera será la intensidad de color.
Luxury Lip Balm . Voluminizador de labios con ácido hialurónico. Hidrata, nutre y repara. Genera un efecto inmediato y a largo plazo de labios hidratados y con mayor volumen.
Para mayor información, comunícate con una de nuestras asesoras al número +1 (786) 233 6429.
Modo de Uso
Sérum Vitamina C + Silicio Orgánico. Aplícalo una o dos veces al día, después de la limpieza, poner de 4-6 gotas en la palma de la mano, aplicar en cara, cuello y escote, realizando ligeros toques, comenzando desde la parte interior del rostro hacia el exterior, hasta su completa absorción.
Sérum Ácido Hialurónico + Silicio Orgánico . Aplica de 4-6 gotas en cara, cuello y escote, dando ligeros toques, comenzando desde la parte interior del rostro hacia el exterior, hasta que se absorba completamente.
Protector-Solar Ultra Protection SPF 50 . Aplica la cantidad deseada sobre la piel limpia y seca, en rostro, cuello y escote; repite este paso cada 2-3 horas durante el día. También lo puedes usar como Primer Facial antes del maquillaje.
Infinit-Ink . Aplicar sobre los labios, delineándolos y luego rellenando la parte interna para hacerla ver voluminosa. En las mejillas aplicar 3 a 6 puntos y difuminar con pequeños toques usando las yemas de los dedos hasta lograr el tono deseado.
Por último, Luxury Lip Balm . Aplica en los labios la cantidad deseada varias veces al día. Su uso continuo revela y mantiene los labios voluminosos.
Estos esenciales serán tus favoritos, lograrás hidratar y darle color a tus labios y mejillas mientras proteges tu piel.
Para mayor información, comunícate con una de nuestras asesoras al número +1 (786) 233 6429.
Kit De Verano
$ 131.70 USD $ 154.99 USD Ahorra $ 23.29 USD
Switching language?
You've switched the language and there are items in the cart. If you keep the USA - Español language, the cart will be emptied and you will have to add the items again to the cart.
Keep USA - Español
Switch back to Colombia
Valoraciones
No hay valoraciones aún.