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;
}
Mascarilla de Barro del Mar Muerto - Infinitek Paris
Esta es una tienda de demostración para realizar pruebas — no se completará ningún pedido. Descartar
Saltar al contenido
Se agregó “Sérum Clarificante Crystal Rose Con AHA+BHA” a tu carrito.
Ver carrito
Mascarilla de Barro del Mar Muerto
$ 36.00 USD -
6.34 FL oz - 180 g
Contiene 98% de Minerales Naturales del fango del Mar Muerto.
Exfolia, Limpia y Detoxifica.
Reduce la Apariencia de Manchas, Arrugas y Poros Dilatados.
Disminuye y Previene la Apariencia de Acné, Espinillas y Eczemas.
Nutre, Hidrata y Remineraliza.
Contiene: Extracto de Centella Asiática, Aquilea, Tusilago, Caléndula, Karité y Aceite de Almendras. Su fórmula es rica en Vitamina A, E y Minerales naturales como el Magnesio, Sodio, Calcio y Potasio.
Contiene 98% de Minerales Naturales del fango del Mar Muerto. Exfolia, limpia y detoxifica la piel. Remineraliza y nutre, previniendo y disminuyendo manchas, arrugas, poros dilatados y oleosidad. Ideal para pieles con tendencia a acné o piel grasa. …Ver más
¿Para qué sirve?
Su fórmula antioxidante y remineralizante, limpia, purifica y restaura el equilibrio natural de la piel. Absorbe el exceso de grasa y desintoxica los poros a profundidad, eliminando impurezas y células muertas. Previene y disminuye la apariencia de acné, espinillas y eczemas; mientras mejora la textura y aclara el tono de la piel, revelándola radiante, renovada y juvenil.
Su fórmula multifuncional nutre, hidrata y regenera la piel, mientras disminuye la apariencia de manchas, arrugas y poros dilatados. Es ideal para pieles propensas al acné.
PARA TODO TIPO DE PIEL – Sin adición de Parabenos, fragancias y Colorantes.
Libre de crueldad animal.
Para mayor información, comunícate con una de nuestras asesoras al número +1 (786) 233 6429.
Ver menos
Ingredientes Nuestra Mascarilla del Mar Muerto está formulado con:
Barro del Mar Muerto
Exfoliante con propiedades detoxificantes que contribuye a la renovación celular, limpiando los poros de manera profunda y eliminando células muertas. Con un 98% de minerales naturales extraídos del barro del Mar Muerto, restablece el equilibrio de la piel, hidratando y permitiendo la oxigenación necesaria para estimular la circulación sanguínea.
Extracto de Caléndula
Propiedades humectantes que nutren y reparan a profundidad. Protege contra el daño de los radicales libres con el fin de retrasar signos del envejecimiento prematuro como deshidratación y líneas de expresión.
Aceite de Almendras
Hidrata a profundidad, revitalizando la piel para que siempre luzca joven y radiante. Es un excelente aliado para combatir y mejorar la apariencia del acné, puntos negros y manchas.
Lista completa de ingredientes
Precauciones Solo para uso externo. Si aparecen signos de irritación suspenda su uso. Evitar el contacto directo con los ojos. Mantener el recipiente bien tapado, protegido de la luz y el calor. Mantener fuera del alcance de los niños.
Para mayor información, comunícate con una de nuestras asesoras al número +1 (786) 233 6429.
Mascarilla de Barro del Mar Muerto
$ 36.00 USD - 6.34 FL oz - 180 g
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
lilytorres172 (propietario verificado) –
No la cambio por nada, me encanta. Es súper efectiva desde la primera aplicación.
julita1226 (propietario verificado) –
La he aplicado dos veces y se siente como si sacara toda la piel muerta y me renovara
Sindy (propietario verificado) –
Es muy parecido al cerúm solo que te deja súper limpia la cara 🤩
Infinitek Paris –
¡Nos encanta vivir contigo la experiencia IK! 🌸