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":649854,"date":"2022-02-10T12:46:04","date_gmt":"2022-02-10T17:46:04","guid":{"rendered":"https:\/\/dev2025.infinitekparis.com\/?p=649854"},"modified":"2022-10-21T15:14:49","modified_gmt":"2022-10-21T20:14:49","slug":"3-tips-for-a-perfect-valentines-day-date","status":"publish","type":"post","link":"https:\/\/dev2025.infinitekparis.com\/us-en\/blog\/experiences\/3-tips-for-a-perfect-valentines-day-date\/","title":{"rendered":"3 TIPS FOR A PERFECT VALENTINE’S DAY DATE"},"content":{"rendered":"
\n\n\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t\n

February 14th is known and celebrated as Valentine\u2019s Day in many countries. There are many people around the world have adopted this date to celebrate love, pamper their boyfriends or a special person in their lives. This is why, in this blog we want to share with you 3 basic tips for a perfect date without having to leave your home.<\/span><\/p>\n

1. Prepare the atmosphere:<\/span><\/p>\n

Choose a special and unique spot in your house. Somewhere you feel comfortable and relaxed, that has natural light, and somewhere you can also decorate to your preference. Always think about what your partner likes!<\/span><\/p>\n

2. A nice aroma and music will always create unique experiences:<\/span><\/p>\n

Light the magic of your special night with a soft scent. This will make your date magical and unforgettable. Don\u2019t forget about the music. This will add a special and romantic touch to your date. Make a playlist with relaxing music that will make you both feel as if you were in a magical place full of love.<\/span><\/p>\n

3. A different plan that turns into a perfect date:<\/span><\/p>\n

If you\u2019re looking for a romantic date that is out of the ordinary, this blog post is for you. The perfect date is not always at the best restaurant in town nor at the movie theater, but it can be at your own house relaxing and even doing your favorite skin care routine.<\/span><\/p>\n

Having a place to talk, getting to know each other better and sharing special moments is what will make your date perfect. Wouldn\u2019t you love to spend time with your partner and spend hours talking? That\u2019s the most romantic plan in the world!<\/span><\/p>\n

Below we will teach you how to do a great skincare routine with your partner to make your Valentine\u2019s Day date perfect. Take notes!<\/span><\/p>\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\t\t\n