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 Skin Cycling - infinitekparis.com
Esta es una tienda de demostración para realizar pruebas — no se completará ningún pedido. Descartar
Skip to content
“Infinit-Ink + Luxury Lip Treatment” se ha añadido a tu carrito.
Ver carrito
$ 379,200 COP $ 421,400 COP Ahorra $ 42,200 COP
4 esenciales para recuperar la belleza natural de tu piel.
Unifica el tono de tu piel.
Mejora la textura de tu piel.
Previene y mejora la apariencia de manchas, arrugas y poros dilatados.
Textura ligera y no grasa.
Paga hasta en 3 meses sin intereses con
Es un kit ideal para recuperar la barrera natural de tu piel siguiendo paso a paso una tendencia muy conocida en el mundo del Skin Care llamado Skin Cycling .
Esta tendencia se basa en un proceso de 4 noches en la que se intercalan productos con principios e ingredientes activos en la piel para mejorar su textura, unificar el tono de su piel e hidratar.
¿Cómo funciona?
Durante el Skin Cycling se debe alternar ingredientes activos con días de descanso haciendo lucir la piel más firme, fuerte y luminosa.
Noche 1 – Exfoliación. Durante esta noche se debe exfoliar la piel con un exfoliante químico a base de AHAs o BHAs.
Noche 2 – Retinol. Durante esta noche después de desmaquillar y limpiar la piel, se debe aplicar una pequeña cantidad de Retinol y dejar que actúe durante la noche.
Noche 3 y 4 – Hidratación y recuperación. Durante esta noche se deberá dar un descanso a la piel y sellar después de la limpieza con un hidratante.
Todos los días se debe aplicar Protector Solar para proteger la piel.
Para mayor información, comunícate con una de nuestras asesoras al número (+57) 316 6919159.
Modo de uso Noche 1. Sérum Despigmentante Crystal Rose. Aplica de 4-6 gotas sobre la piel limpia y seca, en rostro, cuello y escote, evitando el área de la boca y alrededor de los ojos.
Noche 2. Crema Humectante Retinol. Aplica en cara, cuello y escote, dando ligeros toques. Si es tu primera vez usando retinol te recomendamos aplicarla progresivamente.
Noche 3. Sérum Ácido Hialurónico. Aplica de 4-6 gotas sobre la piel limpia y seca, en rostro, cuello y escote, evitando el área de la boca y alrededor de los ojos.
Todos los días se debe aplicar Protector Solar para proteger la piel.
Kit Skin Cycling
$ 379,200 COP $ 421,400 COP Ahorra $ 42,200 COP
SÉRUM CLARIFICANTE CRYSTAL ROSE CON AHA + BHA
0 /200
Sube tus fotos
×
Valoraciones
No hay valoraciones aún.