|  | 
 | <?php
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | 
  | 
 | add_action('admin_menu', 'superwp_whatsapp_enquiry_submenu');
  | 
 | function superwp_whatsapp_enquiry_submenu() {
  | 
 |     add_submenu_page(
  | 
 |         'woocommerce',
  | 
 |         __('SuperWP WhatsApp Enquiry', 'superwp'),
  | 
 |         __('SuperWP WhatsApp Enquiry', 'superwp'),
  | 
 |         'manage_options',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_settings_page'
  | 
 |     );
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_enquiry_settings_page() {
  | 
 |     ?>
  | 
 |     <div class="wrap">
  | 
 |         <h1><?php _e('WhatsApp Enquiry Settings', 'superwp'); ?></h1>
  | 
 |         <form method="post" action="options.php">
  | 
 |             <?php
  | 
 |             settings_fields('superwp_whatsapp_enquiry_settings_group');
  | 
 |             do_settings_sections('superwp-whatsapp-enquiry');
  | 
 |             submit_button();
  | 
 |             ?>
  | 
 |         </form>
  | 
 |     </div>
  | 
 |     <?php
  | 
 | }
  | 
 | 
  | 
 | // Register settings
  | 
 | add_action('admin_init', 'superwp_whatsapp_enquiry_settings_init');
  | 
 | function superwp_whatsapp_enquiry_settings_init() {
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_number');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_custom_message');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_text');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_text_color');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_background_color');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_border_color');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_font_size');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_width');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_button_height');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_section_title');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_section_title_color');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_section_title_font_size');
  | 
 | 	    register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_phone_number_text_color');
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_phone_number_font_size');
  | 
 | 
  | 
 |     add_settings_section(
  | 
 |         'superwp_whatsapp_enquiry_main',          
  | 
 |         __('Main Settings', 'superwp'),           
  | 
 |         null,                                     
  | 
 |         'superwp-whatsapp-enquiry'                
  | 
 |     );
  | 
 | 
  | 
 | 	add_settings_field(
  | 
 | 		'superwp_whatsapp_number', 
  | 
 | 		__('WhatsApp Number', 'superwp'),
  | 
 | 		'superwp_whatsapp_number_callback',
  | 
 | 		'superwp-whatsapp-enquiry',
  | 
 | 		'superwp_whatsapp_enquiry_main'
  | 
 | 	);
  | 
 | 	
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_custom_message',
  | 
 |         __('Custom Message', 'superwp'),
  | 
 |         'superwp_whatsapp_custom_message_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 |     
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_text',
  | 
 |         __('Button Text', 'superwp'),
  | 
 |         'superwp_whatsapp_button_text_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 |     
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_text_color',
  | 
 |         __('Button Text Color', 'superwp'),
  | 
 |         'superwp_whatsapp_button_text_color_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 |     
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_background_color',
  | 
 |         __('Button Background Color', 'superwp'),
  | 
 |         'superwp_whatsapp_button_background_color_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 |     
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_border_color',
  | 
 |         __('Button Border Color', 'superwp'),
  | 
 |         'superwp_whatsapp_button_border_color_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_font_size',
  | 
 |         __('Button Font Size (px)', 'superwp'),
  | 
 |         'superwp_whatsapp_button_font_size_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_width',
  | 
 |         __('Button Width (px)', 'superwp'),
  | 
 |         'superwp_whatsapp_button_width_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_button_height',
  | 
 |         __('Button Height (px)', 'superwp'),
  | 
 |         'superwp_whatsapp_button_height_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_section_title',
  | 
 |         __('Section Title', 'superwp'),
  | 
 |         'superwp_whatsapp_section_title_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_section_title_color',
  | 
 |         __('Section Title Color', 'superwp'),
  | 
 |         'superwp_whatsapp_section_title_color_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_section_title_font_size',
  | 
 |         __('Section Title Font Size (px)', 'superwp'),
  | 
 |         'superwp_whatsapp_section_title_font_size_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 	
  | 
 | 	
  | 
 |     register_setting('superwp_whatsapp_enquiry_settings_group', 'superwp_whatsapp_phone_number');
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_phone_number', 
  | 
 |         __('Phone Number Field Placeholder', 'superwp'),
  | 
 |         'superwp_whatsapp_phone_number_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 	
  | 
 | 	add_settings_field(
  | 
 |         'superwp_whatsapp_phone_number_text_color',
  | 
 |         __('Phone Number Text Color', 'superwp'),
  | 
 |         'superwp_whatsapp_phone_number_text_color_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | 
  | 
 |     add_settings_field(
  | 
 |         'superwp_whatsapp_phone_number_font_size',
  | 
 |         __('Phone Number Font Size (px)', 'superwp'),
  | 
 |         'superwp_whatsapp_phone_number_font_size_callback',
  | 
 |         'superwp-whatsapp-enquiry',
  | 
 |         'superwp_whatsapp_enquiry_main'
  | 
 |     );
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_phone_number_callback() {
  | 
 |     $phone_number_placeholder = esc_attr(get_option('superwp_whatsapp_phone_number', __('Enter your phone number', 'superwp')));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_phone_number" value="' . $phone_number_placeholder . '" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | 	function superwp_whatsapp_number_callback() {
  | 
 | 		$number = esc_attr(get_option('superwp_whatsapp_number'));
  | 
 | 		echo '<input type="text" name="superwp_whatsapp_number" value="' . $number . '" placeholder="+2547000000.." required />';
  | 
 | 		echo '<p class="description">' . __('Enter your WhatsApp number with country code (required)', 'superwp') . '</p>';
  | 
 | 	}
  | 
 | 	
  | 
 | 	add_filter('pre_update_option_superwp_whatsapp_number', 'validate_superwp_whatsapp_number', 10, 2);
  | 
 | 	function validate_superwp_whatsapp_number($new_value, $old_value) {
  | 
 | 		if (empty($new_value)) {
  | 
 | 			add_settings_error(
  | 
 | 				'superwp_whatsapp_number',
  | 
 | 				'superwp_whatsapp_number_error',
  | 
 | 				__('WhatsApp number is required.', 'superwp'),
  | 
 | 				'error'
  | 
 | 			);
  | 
 | 			return $old_value;
  | 
 | 		}
  | 
 | 		return $new_value;
  | 
 | 	}
  | 
 | 
  | 
 | 
  | 
 | add_action('admin_notices', 'superwp_whatsapp_admin_notices');
  | 
 | function superwp_whatsapp_admin_notices() {
  | 
 |     settings_errors('superwp_whatsapp_number');
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_custom_message_callback() {
  | 
 |     echo '<p style="color: red; font-weight: bold;">Notice: Avoid indenting the custom whatsapp message to prevent errors.</p>';
  | 
 |     $custom_message = esc_attr(get_option('superwp_whatsapp_custom_message'));
  | 
 |     echo '<textarea name="superwp_whatsapp_custom_message" rows="5" cols="50">' . $custom_message . '</textarea>';
  | 
 |     echo '<p>' . __('Use the following shortcodes: {product_name}, {product_url}, {site_name}', 'superwp') . '</p>';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_text_callback() {
  | 
 |     $button_text = esc_attr(get_option('superwp_whatsapp_button_text', __('Enquire via WhatsApp', 'superwp')));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_button_text" value="' . $button_text . '" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_text_color_callback() {
  | 
 |     $text_color = esc_attr(get_option('superwp_whatsapp_button_text_color', '#ffffff'));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_button_text_color" value="' . $text_color . '" class="color-picker" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_background_color_callback() {
  | 
 |     $bg_color = esc_attr(get_option('superwp_whatsapp_button_background_color', '#25D366'));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_button_background_color" value="' . $bg_color . '" class="color-picker" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_border_color_callback() {
  | 
 |     $border_color = esc_attr(get_option('superwp_whatsapp_button_border_color', '#128C7E'));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_button_border_color" value="' . $border_color . '" class="color-picker" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_font_size_callback() {
  | 
 |     $font_size = esc_attr(get_option('superwp_whatsapp_button_font_size', '16'));
  | 
 |     echo '<input type="number" name="superwp_whatsapp_button_font_size" value="' . $font_size . '" /> px';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_width_callback() {
  | 
 |     $width = esc_attr(get_option('superwp_whatsapp_button_width', '200'));
  | 
 |     echo '<input type="number" name="superwp_whatsapp_button_width" value="' . $width . '" /> px';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_button_height_callback() {
  | 
 |     $height = esc_attr(get_option('superwp_whatsapp_button_height', '50'));
  | 
 |     echo '<input type="number" name="superwp_whatsapp_button_height" value="' . $height . '" /> px';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_section_title_callback() {
  | 
 |     $section_title = esc_attr(get_option('superwp_whatsapp_section_title', __('WhatsApp Enquiry', 'superwp')));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_section_title" value="' . $section_title . '" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_section_title_color_callback() {
  | 
 |     $title_color = esc_attr(get_option('superwp_whatsapp_section_title_color', '#000000'));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_section_title_color" value="' . $title_color . '" class="color-picker" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_section_title_font_size_callback() {
  | 
 |     $title_font_size = esc_attr(get_option('superwp_whatsapp_section_title_font_size', '18'));
  | 
 |     echo '<input type="number" name="superwp_whatsapp_section_title_font_size" value="' . $title_font_size . '" /> px';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_phone_number_text_color_callback() {
  | 
 |     $text_color = esc_attr(get_option('superwp_whatsapp_phone_number_text_color', '#000000'));
  | 
 |     echo '<input type="text" name="superwp_whatsapp_phone_number_text_color" value="' . $text_color . '" class="color-picker" />';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | function superwp_whatsapp_phone_number_font_size_callback() {
  | 
 |     $font_size = esc_attr(get_option('superwp_whatsapp_phone_number_font_size', '16'));
  | 
 |     echo '<input type="number" name="superwp_whatsapp_phone_number_font_size" value="' . $font_size . '" /> px';
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | add_action('woocommerce_single_product_summary', 'superwp_add_whatsapp_enquiry_button', 35);
  | 
 | function superwp_add_whatsapp_enquiry_button() {
  | 
 |     global $product;
  | 
 |     $product_name = $product->get_name();
  | 
 |     $product_url = get_permalink($product->get_id());
  | 
 |     $site_name = get_bloginfo('name');
  | 
 |     $whatsapp_number = get_option('superwp_whatsapp_number');
  | 
 |     $custom_message = get_option('superwp_whatsapp_custom_message');
  | 
 |     $button_text = get_option('superwp_whatsapp_button_text', __('Enquire via WhatsApp', 'superwp'));
  | 
 |     $text_color = get_option('superwp_whatsapp_button_text_color', '#ffffff');
  | 
 |     $bg_color = get_option('superwp_whatsapp_button_background_color', '#25D366');
  | 
 |     $border_color = get_option('superwp_whatsapp_button_border_color', '#128C7E');
  | 
 |     $font_size = get_option('superwp_whatsapp_button_font_size', '16');
  | 
 |     $width = get_option('superwp_whatsapp_button_width', '200');
  | 
 |     $height = get_option('superwp_whatsapp_button_height', '50');
  | 
 |     $section_title = get_option('superwp_whatsapp_section_title', __('WhatsApp Enquiry', 'superwp'));
  | 
 |     $title_color = get_option('superwp_whatsapp_section_title_color', '#000000');
  | 
 |     $title_font_size = get_option('superwp_whatsapp_section_title_font_size', '18');
  | 
 |     $phone_number_placeholder = esc_attr(get_option('superwp_whatsapp_phone_number', __('Enter your phone number', 'superwp')));
  | 
 |     $phone_number_text_color = esc_attr(get_option('superwp_whatsapp_phone_number_text_color', '#000000'));
  | 
 |     $phone_number_font_size = esc_attr(get_option('superwp_whatsapp_phone_number_font_size', '16'));
  | 
 |     $whatsapp_message = str_replace(
  | 
 |         array('{product_name}', '{product_url}', '{site_name}'),
  | 
 |         array($product_name, $product_url, $site_name),
  | 
 |         $custom_message
  | 
 |     );
  | 
 | 
  | 
 |     if ($whatsapp_number) {
  | 
 |         echo '
  | 
 |         <div class="whatsapp-enquiry-section">
  | 
 |             <h3 class="whatsapp-enquiry-title">' . esc_html($section_title) . '</h3>
  | 
 |             <div class="whatsapp-enquiry-container">
  | 
 |                 <input type="text" id="whatsapp_phone" placeholder="' . $phone_number_placeholder . '" />
  | 
 |                 <button class="button whatsapp-enquiry-button">' . esc_html($button_text) . '</button>
  | 
 |             </div>
  | 
 |         </div>
  | 
 |         <script type="text/javascript">
  | 
 |             document.querySelector(".whatsapp-enquiry-button").addEventListener("click", function() {
  | 
 |                 var phoneInput = document.getElementById("whatsapp_phone").value;
  | 
 |                 if(phoneInput) {
  | 
 |                     var whatsappURL = "https://wa.me/" + encodeURIComponent("' . $whatsapp_number . '") + "?text=" + encodeURIComponent("' . $whatsapp_message . '");
  | 
 |                     window.open(whatsappURL, "_blank");
  | 
 |                 } else {
  | 
 |                     alert("' . __('Please enter your phone number.', 'superwp') . '");
  | 
 |                 }
  | 
 |             });
  | 
 |         </script>
  | 
 |         <style>
  | 
 |             .whatsapp-enquiry-title {
  | 
 |                 color: ' . esc_attr($title_color) . ';
  | 
 |                 font-size: ' . esc_attr($title_font_size) . 'px;
  | 
 |                 margin-bottom: 10px;
  | 
 |             }
  | 
 |             .whatsapp-enquiry-container {
  | 
 |                 display: flex;
  | 
 |                 align-items: center;
  | 
 |                 gap: 10px;
  | 
 |             }
  | 
 |             #whatsapp_phone {
  | 
 |                 flex: 1;
  | 
 |                 height: ' . esc_attr($height) . 'px;
  | 
 |                 font-size: ' . esc_attr($phone_number_font_size) . 'px;
  | 
 |                 color: ' . esc_attr($phone_number_text_color) . ';
  | 
 |             }
  | 
 |             .whatsapp-enquiry-button {
  | 
 |                 color: ' . esc_attr($text_color) . ' !important;
  | 
 |                 background-color: ' . esc_attr($bg_color) . ' !important;
  | 
 |                 border: 2px solid ' . esc_attr($border_color) . ' !important;
  | 
 |                 font-size: ' . esc_attr($font_size) . 'px !important;
  | 
 |                 height: ' . esc_attr($height) . 'px !important;
  | 
 |                 width: ' . esc_attr($width) . 'px !important;
  | 
 |                 display: flex !important;
  | 
 |                 align-items: center !important;
  | 
 |                 justify-content: center !important;
  | 
 |                 white-space: nowrap !important;
  | 
 |                 overflow: hidden !important;
  | 
 |                 text-overflow: ellipsis !important;
  | 
 |                 text-decoration: none !important;
  | 
 |                 padding: 0 15px !important;
  | 
 |             }
  | 
 |             .whatsapp-enquiry-button:hover {
  | 
 |                 opacity: 0.9;
  | 
 |             }
  | 
 |         </style>
  | 
 |         ';
  | 
 |     }
  | 
 | }
  | 
 | 
  | 
 | 
  | 
 | add_action('admin_enqueue_scripts', 'superwp_whatsapp_enqueue_color_picker');
  | 
 | function superwp_whatsapp_enqueue_color_picker($hook_suffix) {
  | 
 |     if ($hook_suffix === 'woocommerce_page_superwp-whatsapp-enquiry') {
  | 
 |         wp_enqueue_style('wp-color-picker');
  | 
 |         wp_enqueue_script('wp-color-picker');
  | 
 |         wp_add_inline_script('wp-color-picker', '
  | 
 |             jQuery(document).ready(function($){
  | 
 |                 $(".color-picker").wpColorPicker();
  | 
 |             });
  | 
 |         ');
  | 
 |     }
  | 
 | }
  | 
 |  | 
 |  | 
Comments