Plugin Directory

Changeset 3339544


Ignore:
Timestamp:
08/05/2025 09:57:10 AM (8 months ago)
Author:
techbeeps
Message:

version 1.8.0

Location:
replypilot-ai
Files:
38 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • replypilot-ai/trunk/admin.php

    r3314646 r3339544  
    5656        $replypilot_ai_chatbot_about_business = isset($_POST['replypilot_ai_chatbot_about_business']) ? wp_kses_post(wp_unslash($_POST['replypilot_ai_chatbot_about_business'])) : '';
    5757        $replypilot_ai_chatbot_enable = isset($_POST['replypilot_ai_chatbot_enable']) ? 1 : 0;
     58        $replypilot_name_email_enable = isset($_POST['replypilot_name_email_enable']) ? 1 : 0;
    5859        $replypilot_chatbot_header_msg = isset($_POST['replypilot_chatbot_header_msg']) ? sanitize_text_field(wp_unslash($_POST['replypilot_chatbot_header_msg'])) : 'Hello! Before we begin, could you please provide your name and email?';
     60        $replypilot_chatbot_first_msg = isset($_POST['replypilot_chatbot_first_msg']) ? sanitize_text_field(wp_unslash($_POST['replypilot_chatbot_first_msg'])) : 'Hello! How can I help you today?';
     61        $replypilot_chatbot_first_suggest = isset($_POST['replypilot_chatbot_first_suggest']) ? sanitize_text_field(wp_unslash($_POST['replypilot_chatbot_first_suggest'])) : '';
    5962
    6063
     
    7174        update_option('replypilot_ai_chatbot_about_business', $replypilot_ai_chatbot_about_business);
    7275        update_option('replypilot_ai_chatbot_enable', $replypilot_ai_chatbot_enable);
     76        update_option('replypilot_name_email_enable', $replypilot_name_email_enable);
    7377        update_option('replypilot_chatbot_header_msg', $replypilot_chatbot_header_msg);
     78        update_option('replypilot_chatbot_first_msg', $replypilot_chatbot_first_msg);
     79        update_option('replypilot_chatbot_first_suggest', $replypilot_chatbot_first_suggest);
    7480
    7581
     
    9399    $api_key = get_option('replypilot_ai_api_key', '1');
    94100    $replypilot_ai_chatbot_enable = get_option('replypilot_ai_chatbot_enable', '1');
     101    $replypilot_name_email_enable = get_option('replypilot_name_email_enable', '1');
    95102    $user_email = get_option('replypilot_ai_email');
    96103    $user_key = substr(hash('sha256', $user_email), 0, 16);
     
    110117    $replypilot_ai_chatbot_about_business = get_option('replypilot_ai_chatbot_about_business', '');
    111118    $replypilot_chatbot_header_msg = get_option('replypilot_chatbot_header_msg', 'Hello! Before we begin, could you please provide your name and email?');
     119    $replypilot_chatbot_first_msg = get_option('replypilot_chatbot_first_msg', 'Hello! How can I help you today?');
     120    $replypilot_chatbot_first_suggest = get_option('replypilot_chatbot_first_suggest','');
    112121
    113122    // Get all users
     
    140149                <div class="rp-plugin-brand" bis_skin_checked="1">
    141150                    <div class="rp-plugin-icon" bis_skin_checked="1">
    142                         <img src="<?php echo esc_url(plugins_url('assets/icon-256x256.png', REPLYPILOT_AI_TBS_URL)); ?>" alt="ReplyPilot AI Logo" class="rp-logo">
     151                        <img src="<?php echo esc_url(plugins_url('assets/logo.png', REPLYPILOT_AI_TBS_URL)); ?>" alt="ReplyPilot AI Logo" class="rp-logo">
    143152
    144153
     
    189198                    </a>
    190199                </li>
     200               
     201                <li class="rp-nav-item">
     202                    <a href="#" class="rp-nav-link rp-nav-tab" data-tab="general5">
     203                        <i class="fas fa-question-circle"></i>
     204                        <span>About</span>
     205                    </a>
     206                </li>
    191207            </ul>
    192208        </aside>
     
    363379
    364380                </div>
    365                 <div id="Chatbot" class="rp-tab-content active">
     381                <div id="Chatbot" class="rp-tab-content">
    366382                    <div class="rp-content-header" bis_skin_checked="1">
    367383                        <div bis_skin_checked="1">
     
    387403                        </div>
    388404                        <div class="form-group" bis_skin_checked="1">
    389                             <label class="form-label">Enable ChatBot </label>
     405
    390406                            <div bis_skin_checked="1">
     407                                <label class="form-label">Enable ChatBot </label>
    391408                                <div class="rp-toggle-slider-div" bis_skin_checked="1">
    392409                                    <label class="toggle-switch">
     
    398415                                <br>
    399416                                <div class="form-group" bis_skin_checked="1">
     417                                    <label class="form-label">Chatbot first Message</label>
     418                                    <input type="text" class="form-control" name="replypilot_chatbot_first_msg" value="<?php echo esc_html($replypilot_chatbot_first_msg) ?>" placeholder="Enter Chatbot First Message">
     419                                </div>
     420                                <label class="form-label">Getting Started Suggestions</label>
     421                                <div class="rp-tag-container">
     422                                    <div id="rp-tags"></div>
     423                                    <textarea id="rp-tag-input" placeholder="Type a tag and press Enter"></textarea>
     424                                </div>
     425                                <input type="hidden" name="replypilot_chatbot_first_suggest" value="<?php echo esc_html($replypilot_chatbot_first_suggest) ?>" id="rp-hidden-suggestion-tags">
     426
     427                                <label class="form-label">Name/Email Collection Enable</label>
     428                                <div class="rp-toggle-slider-div" bis_skin_checked="1">
     429                                    <label class="toggle-switch">
     430                                        <input type="checkbox" id="replypilot_ai_chatbot_enable" name="replypilot_name_email_enable" value="1" <?php checked(1, $replypilot_name_email_enable); ?>>
     431                                        <span class="rp-toggle-slider"></span>
     432                                    </label>
     433                                    <span><?php echo esc_html($replypilot_name_email_enable ? 'Enabled' : 'Disabled'); ?> </span>
     434                                </div>
     435
     436                                <br>
     437                                <div class="form-group" bis_skin_checked="1">
    400438                                    <label class="form-label">Chatbot Header Message</label>
    401439                                    <input type="text" class="form-control" name="replypilot_chatbot_header_msg" value="<?php echo esc_html($replypilot_chatbot_header_msg) ?>" placeholder="Enter Chatbot Header Message">
    402                                    
    403440                                </div>
    404441
     
    648685                        </div>
    649686                        <div style="padding: 20px;">
    650                             <p>For support, please contact our team at support@techbeeps.com</p>
     687                                                    <a href="https://wordpress.org/support/plugin/replypilot-ai/" target="_blank" class="rp-about-button rp-about-button-primary">
     688                            <span class="dashicons dashicons-email-alt"></span> Contact Support
     689                        </a>
    651690                        </div>
    652691                    </div>
     
    656695            </div>
    657696
    658 
     697            <div id="general5" class="rp-tab-content">
     698                <div class="rp-content-header" bis_skin_checked="1">
     699                    <div bis_skin_checked="1">
     700                        <h1 class="rp-page-title">Settings</h1>
     701                        <div class="rp-breadcrumbs" bis_skin_checked="1">
     702                            <a href="#">ReplyPilot AI</a>
     703
     704                            <span>/</span>
     705                            <span>Support</span>
     706                        </div>
     707                    </div>
     708
     709                </div>
     710    <div class="">
     711        <div class="rp-about-about-hero">
     712            <div class="rp-about-about-hero-content">
     713                <img src="<?php echo esc_url(REPLYPILOT_AI_TBS_URL_PLUGIN . 'assets/logo.png'); ?>" alt="AutoReply AI" class="rp-about-logo">
     714                <h1>ReplyPilot AI<span>v<?php echo esc_html(REPLYPILOT_AI_TBS); ?></span></h1>
     715                <p class="rp-about-tagline"> ReplyPilot AI is a powerful WordPress plugin that auto-generates smart, context-aware replies to user comments. Now with a built-in AI chatbot, it helps boost engagement and streamline support across WordPress, forums, and communities.</p>
     716             
     717            </div>
     718        </div>
     719
     720        <div class="rp-about-about-container">
     721
     722            <section class="rp-about-about-section">
     723                <div class="rp-about-section-header">
     724                    <h2>More From Us</h2>
     725                    <p>Explore our other powerful plugins designed to grow your business and accelerate success.</p>
     726                </div>
     727                <div class="rp-about-plugins-grid">
     728                    <div class="rp-about-plugin-card">
     729                        <img src="<?php echo esc_url(REPLYPILOT_AI_TBS_URL_PLUGIN . 'assets/sales-logo.png'); ?>" alt="ChatBot Pro">
     730                        <div class="rp-about-plugin-content">
     731                            <h3>Sales Analytics for WooCommerce</h3>
     732                            <p>Sales Analytics for WooCommerce is a powerful plugin designed to generate custom analytics reports for WooCommerce stores. It provides detailed insights into sales, revenue, product performance, and now introduces AI-powered analysis for smarter decision-making.</p>
     733                            <div class="rp-about-plugin-footer">
     734                                <a href="<?php echo esc_url(admin_url('plugin-install.php?tab=plugin-information&plugin=sales-analytics-for-woocommerce&TB_iframe=true&width=600&height=550')); ?>" class="thickbox salesafw-ab-button salesafw-ab-button-secondary">Install</a>
     735                                <div class="rp-about-rating">
     736                                </div>
     737                            </div>
     738                        </div>
     739                    </div>
     740                    <div class="rp-about-plugin-card">
     741                        <img src="<?php echo esc_url(REPLYPILOT_AI_TBS_URL_PLUGIN . 'assets/autoreply-ai.png'); ?>" alt="SEO Optimizer">
     742                        <div class="rp-about-plugin-content">
     743                            <h3>AutoReply AI</h3>
     744                            <p>AutoReply AI is an intelligent WordPress plugin that automatically generates human-like, context-aware replies to user comments. Powered by advanced AI, it analyzes comment intent and context to deliver smart, personalized responses—perfect for blogs, forums, and community sites.</p>
     745                            <div class="rp-about-plugin-footer">
     746                                <a href="<?php echo esc_url(admin_url('plugin-install.php?tab=plugin-information&plugin=autoreply-ai&TB_iframe=true&width=600&height=550')); ?>" class="thickbox salesafw-ab-button salesafw-ab-button-secondary">Install</a>
     747                                <div class="rp-about-rating">
     748                                </div>
     749                            </div>
     750                        </div>
     751                    </div>
     752                </div>
     753            </section>
     754
     755            <section class="rp-about-about-section rp-about-about-cta">
     756                <div class="rp-about-cta-content">
     757                    <h2>Need Help or Have Suggestions?</h2>
     758                    <p>We're here to help you get the most out of AutoReply AI</p>
     759                    <div class="rp-about-cta-buttons">
     760                        <a href="https://wordpress.org/support/plugin/replypilot-ai/" target="_blank" class="rp-about-button rp-about-button-primary">
     761                            <span class="dashicons dashicons-email-alt"></span> Contact Support
     762                        </a>
     763                        <a href="https://wordpress.org/support/plugin/replypilot-ai/reviews/#new-post" target="_blank" class="rp-about-button rp-about-button-secondary">
     764                            <span class="dashicons dashicons-star-filled"></span> Leave a Review
     765                        </a>
     766                    </div>
     767                </div>
     768            </section>
     769            <section class="rp-about-about-section rp-about-about-footer ">
     770                <div class="rp-about-footer-content">
     771                    <p>ReplyPilot AI v<?php echo esc_html( REPLYPILOT_AI_TBS); ?> - Developed by <a href="https://techbeeps.com">Techbeeps</a></p>
     772                </div>
     773            </section>
     774        </div>
     775    </div>
     776
     777            </div>
    659778
    660779        </main>
  • replypilot-ai/trunk/ai-chatbot.php

    r3335155 r3339544  
    5656function replypilot_chatbot_save_user_data()
    5757{
     58    $replypilot_chatbot_first_msg = get_option('replypilot_chatbot_first_msg', 'Hello! How can I help you today?');
     59   $replypilot_chatbot_first_suggest = get_option('replypilot_chatbot_first_suggest','');
     60
    5861    global $wpdb;
    5962    // Verify nonce
     
    9093            'conversation_id' => $conversation_id,
    9194            'message_type' => 'bot',
    92             'content' => 'Hello! How can I help you today?',
     95            'content' => $replypilot_chatbot_first_msg,
    9396            'sent_at' => current_time('mysql')
    9497        ));
     
    98101    wp_send_json_success(array(
    99102        'conversation_id' => $conversation_id,
    100         'welcome_message' => 'Hello! How can I help you today?'
     103        'welcome_message' => $replypilot_chatbot_first_msg,
     104        'suggest'=> explode(",", $replypilot_chatbot_first_suggest)
    101105    ));
    102106}
     
    141145    // Prepare the conversation context
    142146    $context = [
    143 //2. suggestes: Related topics only if the response doesn\'t fully cover them or if a logical or natural next step is helpful.
     147        //2. suggestes: Related topics only if the response doesn\'t fully cover them or if a logical or natural next step is helpful.
    144148        [
    145149            'parts' => [
    146150                [
    147                     'text' => 'You must return ONLY valid JSON. Do not include markdown, explanations, or text before/after the JSON. Here is the format:
    148 {
    149   "chatresponse": "This is the response to the user\'s question.",
     151         'text' => 'You must return ONLY valid JSON. Do not include markdown, explanations, or text before/after the JSON. Here is the format:
     152{
     153  "chatresponse": "This is the response to the user\'s question as short and highlight some focus word.,**All link must be return in ancher :<a href="url" target="_blank">?</a>**",
    150154  "suggests": ["Follow-up suggestion 1","Follow-up suggestion 2","Follow-up suggestion 3"]
    151155}
    152156instructions:
    153157  1. chatresponse: Provide a concise, accurate response to the user\'s question.
    154   2. suggests:Relevant follow-up questions or next-step topics that logically extend the conversation.
    155   3. Follow-up questions must be 2–6 words long.
     158  2. suggests:Relevant follow-up questions or What the user wants to do next Type for relevant topics, next-step topics that logically extend the conversation.
     159  3. Follow-up questions must be 2–4 words long.
    156160Use this exact structure. Respond to the user\'s message now.'
    157161                ]
     
    161165        [
    162166            'parts' => [
    163                 ['text' => 'You are a helpful AI assistant for my personal website ('.esc_url( site_url() ).'). Communicate in a friendly, professional, and concise tone. Provide clear, accurate, and relevant answers to assist visitors efficiently. Do not provide code or respond to requests involving personal work.' . $replypilot_chatbot_tone ?? '']
     167                ['text' => 'You are a helpful AI assistant for my personal website (' . esc_url(site_url()) . '). Communicate in a friendly, professional, and concise tone. Provide clear, accurate, and relevant answers to assist visitors efficiently. Do not provide code or respond to requests involving personal work.' . $replypilot_chatbot_tone ?? '']
    164168            ],
    165169            'role' => 'user'
     
    279283{
    280284    $replypilot_ai_chatbot_enable = get_option('replypilot_ai_chatbot_enable', '1');
     285    $replypilot_name_email_enable = (bool)get_option('replypilot_name_email_enable', '1') ? true : false;
    281286
    282287    if ($replypilot_ai_chatbot_enable) {
     
    285290            plugins_url('assets/css/chatbot-style.css', REPLYPILOT_AI_TBS_URL),
    286291            array(),
    287             filemtime(plugin_dir_path(REPLYPILOT_AI_TBS_URL) . 'assets/css/chatbot-style.css')
     292            filemtime(plugin_dir_path(REPLYPILOT_AI_TBS_URL) . 'assets/css/chatbot-style.css')+21
    288293        );
    289294
     
    298303        wp_localize_script('replypilot_ai-chatbot-script', 'replypilotChatbot', array(
    299304            'ajaxurl' => admin_url('admin-ajax.php'),
    300             'nonce'           => wp_create_nonce('replypilot_ai_chatbot_nonce')
     305            'nonce'           => wp_create_nonce('replypilot_ai_chatbot_nonce'),
     306            'user_data_collection' => $replypilot_name_email_enable
    301307        ));
    302308    }
     
    473479add_action('wp_ajax_nopriv_replypilot_get_chatbot_messages', 'replypilot_get_chatbot_messages_callback');
    474480
    475 function replypilot_get_chatbot_messages_callback() {
     481function replypilot_get_chatbot_messages_callback()
     482{
    476483    check_ajax_referer('replypilot_ai_chatbot_nonce', 'nonce');
    477484
     
    486493    );
    487494    // Escape output
    488     $escaped_messages = array_map(function($message) {
     495    $escaped_messages = array_map(function ($message) {
    489496        return [
    490497            'message_type' => esc_html($message['message_type']),
     
    496503    wp_send_json_success(['messages' => $escaped_messages]);
    497504}
    498 
  • replypilot-ai/trunk/assets/css/chatbot-style.css

    r3322100 r3339544  
    151151    height: 20px;
    152152}
    153 
     153.replypilot-message-content a{
     154text-decoration: none;
     155color: #4285f4;
     156}
    154157.replypilot-typing-dot {
    155158    display: inline-block;
  • replypilot-ai/trunk/assets/css/style.css

    r3314646 r3339544  
    1818}
    1919
    20 #replypilot_ai_chatbot_tone,#replypilot_ai_chatbot_about_business{
    21     max-width: 100%;
    22 }
    23 #wpbody-content{
     20#replypilot_ai_chatbot_tone,
     21#replypilot_ai_chatbot_about_business {
     22  max-width: 100%;
     23}
     24
     25#wpbody-content {
    2426  display: flex;
    2527  flex-wrap: wrap;
    2628}
     29
    2730.rp-plugin-admin {
    2831  display: flex;
     
    5760}
    5861
    59 .rp-plugin-icon>img{
     62.rp-plugin-icon>img {
    6063  width: 80px;
    6164  height: 80px;
     
    339342  color: #f50b0b;
    340343}
     344
    341345.rp-pricing-container {
    342       display: flex;
    343      
    344       justify-content: center;
    345       gap: 10px;
    346       max-width: 1200px;
    347       margin: 0 auto;
    348   }
    349 
    350   .rp-pricing-card {
    351       background: var(--rp-white);
    352       border-radius: 10px;
    353       overflow: hidden;
    354       box-shadow: var(--rp-shadow);
    355       width: 100%;
    356       max-width: 300px;
    357       transition: var(--rp-transition);
    358       position: relative;
    359   }
    360 
    361   .rp-pricing-card:hover {
    362       transform: translateY(-10px);
    363       box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
    364   }
    365 
    366   .rp-pricing-header {
    367       padding: 1rem;
    368       text-align: center;
    369       background: linear-gradient(135deg, var(--rp-primary), #6a5acd);
    370       color: var(--rp-white);
    371       position: relative;
    372   }
    373 
    374   .popular-tag {
    375       position: absolute;
    376       top: 0;
    377       right: 2rem;
    378       background: var(--rp-accent-color);
    379       color: var(--rp-white);
    380       padding: 0.5rem 1.5rem;
    381       font-size: 0.8rem;
    382       font-weight: bold;
    383       text-transform: uppercase;
    384       border-bottom-left-radius: 5px;
    385       border-bottom-right-radius: 5px;
    386   }
    387 
    388   .rp-pricing-title {
    389      font-size: 2.0rem;
    390     margin: 0;
    391     margin-top: 0.5rem;
    392     font-weight: 600;
    393     color: #fba724;
    394   }
    395 
    396   .rp-pricing-price {
    397       font-size: 3rem;
    398       font-weight: 700;
    399       margin:  0;
    400   }
    401 
    402   .rp-pricing-price span {
    403       font-size: 1rem;
    404       font-weight: 400;
    405   }
    406 
    407   .rp-pricing-period {
    408       font-size: 0.9rem;
    409       opacity: 0.8;
    410       margin:0;
    411   }
    412 
    413   .rp-pricing-features {
    414       padding: 1rem;
    415   }
    416 
    417   .rp-feature-list {
    418       list-style: none;
    419       margin-bottom: 2rem;
    420   }
    421 
    422   .rp-feature-list li {
    423       padding: 0.8rem 0;
    424       border-bottom: 1px solid #eee;
    425       display: flex;
    426       font-size:12px;
    427       align-items: center;
    428   }
    429 
    430   .rp-feature-list li:last-child {
    431       border-bottom: none;
    432   }
    433 
    434   .rp-feature-list li::before {
    435       content: "✓";
    436       color: var(--rp-primary);
    437       font-weight: bold;
    438       margin-right: 0.5rem;
    439   }
    440 
    441   .rp-feature-list .not-included {
    442       opacity: 0.5;
    443   }
    444 
    445   .rp-feature-list .not-included::before {
    446       content: "✕";
    447       color: #ff4d4d;
    448   }
    449 
    450   .rp-pricing-button {
    451       display: block;
    452       width: 100%;
    453       padding: 10px  0;
    454       border: none;
    455       background: var(--rp-primary);
    456       color: var(--rp-white);
    457       font-size: 1rem;
    458       font-weight: 600;
    459       border-radius: 5px;
    460       cursor: pointer;
    461       transition: var(--rp-transition);
    462       text-align: center;
    463       text-decoration: none;
    464   }
    465 
    466   .rp-pricing-button:hover {
    467       background: #3a5bed;
    468       transform: translateY(-2px);
    469       color:#ff7043;
    470   }
    471 
    472   .popular .rp-pricing-button {
    473       background: var(--rp-accent-color);
    474   }
    475 
    476   .popular .rp-pricing-button:hover {
    477       background: #f45c2c;
    478       color:#3a5bed;
    479   }
    480  .save-popup-rp{
     346  display: flex;
     347
     348  justify-content: center;
     349  gap: 10px;
     350  max-width: 1200px;
     351  margin: 0 auto;
     352}
     353
     354.rp-pricing-card {
     355  background: var(--rp-white);
     356  border-radius: 10px;
     357  overflow: hidden;
     358  box-shadow: var(--rp-shadow);
     359  width: 100%;
     360  max-width: 300px;
     361  transition: var(--rp-transition);
     362  position: relative;
     363}
     364
     365.rp-pricing-card:hover {
     366  transform: translateY(-10px);
     367  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
     368}
     369
     370.rp-pricing-header {
     371  padding: 1rem;
     372  text-align: center;
     373  background: linear-gradient(135deg, var(--rp-primary), #6a5acd);
     374  color: var(--rp-white);
     375  position: relative;
     376}
     377
     378.popular-tag {
     379  position: absolute;
     380  top: 0;
     381  right: 2rem;
     382  background: var(--rp-accent-color);
     383  color: var(--rp-white);
     384  padding: 0.5rem 1.5rem;
     385  font-size: 0.8rem;
     386  font-weight: bold;
     387  text-transform: uppercase;
     388  border-bottom-left-radius: 5px;
     389  border-bottom-right-radius: 5px;
     390}
     391
     392.rp-pricing-title {
     393  font-size: 2.0rem;
     394  margin: 0;
     395  margin-top: 0.5rem;
     396  font-weight: 600;
     397  color: #fba724;
     398}
     399
     400.rp-pricing-price {
     401  font-size: 3rem;
     402  font-weight: 700;
     403  margin: 0;
     404}
     405
     406.rp-pricing-price span {
     407  font-size: 1rem;
     408  font-weight: 400;
     409}
     410
     411.rp-pricing-period {
     412  font-size: 0.9rem;
     413  opacity: 0.8;
     414  margin: 0;
     415}
     416
     417
     418.rp-feature-list {
     419  list-style: none;
     420  margin-bottom: 2rem;
     421}
     422
     423.rp-feature-list li {
     424  padding: 0.8rem 0;
     425  border-bottom: 1px solid #eee;
     426  display: flex;
     427  font-size: 12px;
     428  align-items: center;
     429}
     430
     431.rp-feature-list li:last-child {
     432  border-bottom: none;
     433}
     434
     435.rp-feature-list li::before {
     436  content: "✓";
     437  color: var(--rp-primary);
     438  font-weight: bold;
     439  margin-right: 0.5rem;
     440}
     441
     442.rp-feature-list .not-included {
     443  opacity: 0.5;
     444}
     445
     446.rp-feature-list .not-included::before {
     447  content: "✕";
     448  color: #ff4d4d;
     449}
     450
     451.rp-pricing-button {
     452  display: block;
     453  width: 100%;
     454  padding: 10px 0;
     455  border: none;
     456  background: var(--rp-primary);
     457  color: var(--rp-white);
     458  font-size: 1rem;
     459  font-weight: 600;
     460  border-radius: 5px;
     461  cursor: pointer;
     462  transition: var(--rp-transition);
     463  text-align: center;
     464  text-decoration: none;
     465}
     466
     467.rp-pricing-button:hover {
     468  background: #3a5bed;
     469  transform: translateY(-2px);
     470  color: #ff7043;
     471}
     472
     473.popular .rp-pricing-button {
     474  background: var(--rp-accent-color);
     475}
     476
     477.popular .rp-pricing-button:hover {
     478  background: #f45c2c;
     479  color: #3a5bed;
     480}
     481
     482.save-popup-rp {
    481483  position: absolute !important;
    482484  top: 100px;
     
    487489@media (max-width: 768px) {
    488490  .rp-pricing-container {
    489           flex-direction: column;
    490           align-items: center;
    491       }
    492      
    493       .rp-pricing-card {
    494           max-width: 100%;
    495       }
     491    flex-direction: column;
     492    align-items: center;
     493  }
     494
     495  .rp-pricing-card {
     496    max-width: 100%;
     497  }
     498
    496499  .rp-plugin-admin {
    497       flex-direction: column;
     500    flex-direction: column;
    498501  }
    499502
    500503  .rp-sidebar {
    501       width: 100%;
    502       height: auto;
    503       padding: 16px;
    504       border-right: none;
    505       border-bottom: 1px solid var(--rp-border);
     504    width: 100%;
     505    height: auto;
     506    padding: 16px;
     507    border-right: none;
     508    border-bottom: 1px solid var(--rp-border);
    506509  }
    507510
    508511  .rp-sidebar-header {
    509       padding: 0 0 16px;
     512    padding: 0 0 16px;
    510513  }
    511514
    512515  .rp-nav-menu {
    513       display: flex;
    514       overflow-x: auto;
    515       padding-bottom: 8px;
     516    display: flex;
     517    overflow-x: auto;
     518    padding-bottom: 8px;
    516519  }
    517520
    518521  .rp-nav-item {
    519       flex: 0 0 auto;
    520       margin-bottom: 0;
    521       margin-right: 8px;
     522    flex: 0 0 auto;
     523    margin-bottom: 0;
     524    margin-right: 8px;
    522525  }
    523526
    524527  .rp-main-content {
    525       padding: 24px;
    526   }
    527 }
    528 
    529 
    530 
    531 .chatbot-conversations{
     528    padding: 24px;
     529  }
     530}
     531
     532
     533
     534.chatbot-conversations {
    532535  margin: 0 auto;
    533536  padding-right: 20px;
    534537}
    535 .chatbot-conversations h1{
     538
     539.chatbot-conversations h1 {
    536540  line-height: 3;
    537541}
     
    540544/* Conversation Detail View */
    541545.chatbot-admin-conversation {
    542     background: #fff;
    543     border-radius: 12px;
    544     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    545     margin-bottom: 30px;
    546     overflow: hidden;
    547     padding: 10px 20px;
    548     width: 900px;
    549     margin-top: 20px;
     546  background: #fff;
     547  border-radius: 12px;
     548  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
     549  margin-bottom: 30px;
     550  overflow: hidden;
     551  padding: 10px 20px;
     552  width: 900px;
     553  margin-top: 20px;
    550554
    551555}
    552556
    553557.chatbot-admin-conversation-header {
    554     background: linear-gradient(135deg, #4285f4, #34a853);
    555     color: white;
    556     padding: 18px 25px;
    557     display: flex;
    558     justify-content: space-between;
    559     align-items: center;
     558  background: linear-gradient(135deg, #4285f4, #34a853);
     559  color: white;
     560  padding: 18px 25px;
     561  display: flex;
     562  justify-content: space-between;
     563  align-items: center;
    560564}
    561565
    562566.chatbot-admin-conversation-header h2 {
    563     margin: 0;
    564     font-size: 18px;
    565     font-weight: 500;
     567  margin: 0;
     568  font-size: 18px;
     569  font-weight: 500;
    566570}
    567571
    568572.chatbot-admin-conversation-meta {
    569     background: #f8fafc;
    570     padding: 15px 25px;
    571     border-bottom: 1px solid #e2e8f0;
    572     font-size: 13px;
    573     color: #64748b;
    574     display: flex;
    575     justify-content: space-between;
     573  background: #f8fafc;
     574  padding: 15px 25px;
     575  border-bottom: 1px solid #e2e8f0;
     576  font-size: 13px;
     577  color: #64748b;
     578  display: flex;
     579  justify-content: space-between;
    576580}
    577581
    578582/* Chat Messages Container */
    579583.chatbot-admin-messages {
    580     padding: 25px;
    581     background: #f5f7fb;
    582     min-height: 500px;
    583     max-height: 60vh;
    584     overflow-y: auto;
    585     display: flex;
    586     flex-direction: column;
     584  padding: 25px;
     585  background: #f5f7fb;
     586  min-height: 500px;
     587  max-height: 60vh;
     588  overflow-y: auto;
     589  display: flex;
     590  flex-direction: column;
    587591
    588592}
     
    590594/* Message Bubbles */
    591595.chatbot-admin-message {
    592     max-width: 75%;
    593     position: relative;
    594     animation: fadeIn 0.3s ease;
     596  max-width: 75%;
     597  position: relative;
     598  animation: fadeIn 0.3s ease;
    595599}
    596600
    597601@keyframes fadeIn {
    598     from { opacity: 0; transform: translateY(8px); }
    599     to { opacity: 1; transform: translateY(0); }
     602  from {
     603    opacity: 0;
     604    transform: translateY(8px);
     605  }
     606
     607  to {
     608    opacity: 1;
     609    transform: translateY(0);
     610  }
    600611}
    601612
    602613.chatbot-admin-message.user {
    603       margin-right: auto;
     614  margin-right: auto;
    604615}
    605616
    606617.chatbot-admin-message.bot {
    607  
    608     margin-left: auto;
     618
     619  margin-left: auto;
    609620}
    610621
    611622.message-bubble {
    612     padding: 14px 18px;
    613     border-radius: 18px;
    614     line-height: 1.5;
    615     word-wrap: break-word;
    616     position: relative;
    617     box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
     623  padding: 14px 18px;
     624  border-radius: 18px;
     625  line-height: 1.5;
     626  word-wrap: break-word;
     627  position: relative;
     628  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    618629}
    619630
    620631.chatbot-admin-message.user.message-bubble {
    621    
    622     background: white;
    623     color: #334155;
    624     border: 1px solid #e2e8f0;
    625     border-bottom-left-radius: 4px;
     632
     633  background: white;
     634  color: #334155;
     635  border: 1px solid #e2e8f0;
     636  border-bottom-left-radius: 4px;
    626637}
    627638
    628639.chatbot-admin-message.bot.message-bubble {
    629     background: #4285f4;
    630     color: white;
    631     border-bottom-right-radius: 4px;
     640  background: #4285f4;
     641  color: white;
     642  border-bottom-right-radius: 4px;
    632643}
    633644
    634645.message-time {
    635     font-size: 11px;
    636     margin-top: 6px;
    637     display: block;
    638     text-align: right;
    639     opacity: 0.8;
     646  font-size: 11px;
     647  margin-top: 6px;
     648  display: block;
     649  text-align: right;
     650  opacity: 0.8;
    640651}
    641652
    642653.chatbot-admin-message.user .message-time {
    643  color: #94a3b8;
     654  color: #94a3b8;
    644655}
    645656
    646657.chatbot-admin-message.bot .message-time {
    647        color: rgba(255, 255, 255, 0.7);
     658  color: rgba(255, 255, 255, 0.7);
    648659}
    649660
    650661/* Back Link */
    651662.back-to-conversations {
    652     display: inline-flex;
    653     align-items: center;
    654     padding: 10px 15px;
    655     background: #f1f5f9;
    656     border-radius: 6px;
    657     color: #334155;
    658     text-decoration: none;
    659     margin: 20px 0;
    660     transition: all 0.2s;
     663  display: inline-flex;
     664  align-items: center;
     665  padding: 10px 15px;
     666  background: #f1f5f9;
     667  border-radius: 6px;
     668  color: #334155;
     669  text-decoration: none;
     670  margin: 20px 0;
     671  transition: all 0.2s;
    661672}
    662673
    663674.back-to-conversations:hover {
    664     background: #e2e8f0;
    665     color: #1e40af;
     675  background: #e2e8f0;
     676  color: #1e40af;
    666677}
    667678
     
    670681/* Responsive Design */
    671682@media (max-width: 1024px) {
    672  
    673     .chatbot-admin-messages {
    674         padding: 15px;
    675         min-height: 400px;
    676     }
    677    
    678     .message-bubble {
    679         padding: 12px 16px;
    680     }
    681     .chatbot-admin-conversation{
    682       width: 100%;
    683     }
     683
     684  .chatbot-admin-messages {
     685    padding: 15px;
     686    min-height: 400px;
     687  }
     688
     689  .message-bubble {
     690    padding: 12px 16px;
     691  }
     692
     693  .chatbot-admin-conversation {
     694    width: 100%;
     695  }
    684696}
    685697
    686698@media (max-width: 782px) {
    687     .chatbot-admin-conversation-header,
    688     .chatbot-admin-conversation-meta {
    689         flex-direction: column;
    690         gap: 8px;
    691     }
    692    
    693     .chatbot-admin-message {
    694         max-width: 85%;
    695     }
    696         .chatbot-admin-conversation{
    697       width: auto;
    698     }
     699
     700  .chatbot-admin-conversation-header,
     701  .chatbot-admin-conversation-meta {
     702    flex-direction: column;
     703    gap: 8px;
     704  }
     705
     706  .chatbot-admin-message {
     707    max-width: 85%;
     708  }
     709
     710  .chatbot-admin-conversation {
     711    width: auto;
     712  }
    699713}
    700714
    701715.replypilot-table {
    702     width: 100%;
    703     border-collapse: separate;
    704     border-spacing: 0;
    705     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    706     font-size: 14px;
    707     color: #333;
    708     background-color: #fff;
    709     border: 1px solid #e0e0e0;
    710     border-radius: 8px;
    711     overflow: hidden;
    712     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    713     border: none !important;
    714     padding: 20px;
     716  width: 100%;
     717  border-collapse: separate;
     718  border-spacing: 0;
     719  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
     720  font-size: 14px;
     721  color: #333;
     722  background-color: #fff;
     723  border: 1px solid #e0e0e0;
     724  border-radius: 8px;
     725  overflow: hidden;
     726  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
     727  border: none !important;
     728  padding: 20px;
    715729}
    716730
    717731.replypilot-table thead {
    718     background: linear-gradient(to right, #f7f7f7, #f0f0f0);
     732  background: linear-gradient(to right, #f7f7f7, #f0f0f0);
    719733}
    720734
    721735.replypilot-table thead th {
    722     padding: 14px 18px;
    723     text-align: left;
    724     font-weight: 600;
    725     color: #444;
    726     border-bottom: 1px solid #ddd;
    727     text-transform: uppercase;
    728     font-size: 13px;
    729     letter-spacing: 0.6px;
     736  padding: 14px 18px;
     737  text-align: left;
     738  font-weight: 600;
     739  color: #444;
     740  border-bottom: 1px solid #ddd;
     741  text-transform: uppercase;
     742  font-size: 13px;
     743  letter-spacing: 0.6px;
    730744}
    731745
    732746.replypilot-table tbody tr {
    733     background-color: #fff;
    734     transition: background-color 0.3s ease;
     747  background-color: #fff;
     748  transition: background-color 0.3s ease;
    735749}
    736750
    737751.replypilot-table tbody tr:hover {
    738     background-color: #f9fbfc;
     752  background-color: #f9fbfc;
    739753}
    740754
    741755.replypilot-table td {
    742     padding: 14px 18px;
    743     border-bottom: 1px solid #eee;
    744     vertical-align: middle;
     756  padding: 14px 18px;
     757  border-bottom: 1px solid #eee;
     758  vertical-align: middle;
    745759}
    746760
    747761.replypilot-table tbody tr:last-child td {
    748     border-bottom: none;
     762  border-bottom: none;
    749763}
    750764
    751765.replypilot-table a {
    752     color: #0066cc;
    753     font-weight: 500;
    754     text-decoration: none;
    755     transition: color 0.2s;
     766  color: #0066cc;
     767  font-weight: 500;
     768  text-decoration: none;
     769  transition: color 0.2s;
    756770}
    757771
    758772.replypilot-table a:hover {
    759     color: #004a99;
    760     text-decoration: underline;
     773  color: #004a99;
     774  text-decoration: underline;
    761775}
    762776
    763777/* Optional: Highlight Action buttons with subtle UI */
    764778.replypilot-table td:last-child a {
    765     background-color: #2271b1;
    766     padding: 6px 12px;
    767     border-radius: 4px;
    768     font-size: 13px;
    769     font-weight: 500;
    770     color: #fff;
     779  background-color: #2271b1;
     780  padding: 6px 12px;
     781  border-radius: 4px;
     782  font-size: 13px;
     783  font-weight: 500;
     784  color: #fff;
    771785}
    772786
    773787.replypilot-table td:last-child a:hover {
    774     background-color: #024276;
    775 }
     788  background-color: #024276;
     789}
     790
    776791/* Simple Pagination Styles */
    777792.replypilot-pagination {
    778     text-align: center;
    779     margin: 20px 0;
    780     font-size: 14px;
    781 }
    782 
    783 .replypilot-pagination a, 
     793  text-align: center;
     794  margin: 20px 0;
     795  font-size: 14px;
     796}
     797
     798.replypilot-pagination a,
    784799.replypilot-pagination span {
    785     display: inline-block;
    786     padding: 5px 10px;
    787     margin: 0 2px;
    788     border: 1px solid #ddd;
    789     background: #f7f7f7;
    790     text-decoration: none;
    791     color: #555;
     800  display: inline-block;
     801  padding: 5px 10px;
     802  margin: 0 2px;
     803  border: 1px solid #ddd;
     804  background: #f7f7f7;
     805  text-decoration: none;
     806  color: #555;
    792807}
    793808
    794809.replypilot-pagination a:hover {
    795     background: #e0e0e0;
     810  background: #e0e0e0;
    796811}
    797812
    798813.replypilot-pagination .current {
    799     background: #0073aa;
    800     color: white;
    801     border-color: #0073aa;
     814  background: #0073aa;
     815  color: white;
     816  border-color: #0073aa;
    802817}
    803818
    804819/* Delete Button Styling */
    805820.delete-conversation {
    806     color: #d63638 ;
    807     padding: 5px 17px;
    808     margin-left: 8px;
    809     border-color: #d63638;
    810     background: #ffa4a4;
    811     border-radius: 4px;
    812     border-width: 0px;
    813     font-size: 15px;
    814  cursor: pointer;
    815 }
     821  color: #d63638;
     822  padding: 5px 17px;
     823  margin-left: 8px;
     824  border-color: #d63638;
     825  background: #ffa4a4;
     826  border-radius: 4px;
     827  border-width: 0px;
     828  font-size: 15px;
     829  cursor: pointer;
     830}
     831
    816832.delete-conversation:hover {
    817     background: #d63638;
    818     color: white;
    819     border-color: #d63638;
    820 }
     833  background: #d63638;
     834  color: white;
     835  border-color: #d63638;
     836}
     837
     838.rp-tag-container {
     839  width: 100%;
     840  max-width: 500px;
     841  border: 1px solid #ccc;
     842  background-color: #fff;
     843  padding: 10px;
     844  border-radius: 5px;
     845  margin-bottom: 20px;
     846  box-sizing: border-box;
     847}
     848
     849#rp-tags {
     850  display: flex;
     851  flex-wrap: wrap;
     852  gap: 5px;
     853}
     854
     855.rp-tag {
     856  background-color: var(--rp-primary);
     857  color: white;
     858  padding: 5px 10px;
     859  border-radius: 15px;
     860  font-size: 14px;
     861  display: flex;
     862  align-items: center;
     863}
     864
     865.rp-tag .rp-remove-btn {
     866  margin-left: 8px;
     867  cursor: pointer;
     868  font-weight: bold;
     869}
     870
     871#rp-tag-input {
     872  border: none;
     873  resize: none;
     874  min-height: 30px;
     875  font-size: 14px;
     876  padding: 5px;
     877  outline: none;
     878  width: 100%;
     879}
     880
     881#rp-tag-input:focus {
     882  box-shadow: 0 0 0 0px #2271b1;
     883}
     884
     885:root {
     886  --primary: #6e48aa;
     887  --primary-light: #9d50bb;
     888  --secondary: #3858e9;
     889  --text: #1d2327;
     890  --text-light: #646970;
     891  --bg: #f8f9fa;
     892  --card-bg: rgba(255, 255, 255, 0.85);
     893  --border-radius: 12px;
     894  --box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
     895  --transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1);
     896}
     897
     898/* Base Styles */
     899.rp-about-about-wrap {
     900  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
     901  color: var(--text);
     902  line-height: 1.6;
     903  max-width: 1200px;
     904  margin: 0 auto;
     905  padding: 0 20px;
     906  background-color: var(--bg);
     907  -webkit-font-smoothing: antialiased;
     908}
     909
     910/* Hero Section - Glass Morphism Effect */
     911.rp-about-about-hero {
     912  background: linear-gradient(135deg, var(--rp-primary), #6a5acd);
     913  backdrop-filter: blur(12px);
     914  -webkit-backdrop-filter: blur(12px);
     915  color: white;
     916  padding: 15px;
     917  border-radius: var(--border-radius);
     918  margin: 2rem 0 3rem;
     919  text-align: center;
     920  box-shadow: var(--box-shadow);
     921  border: 1px solid rgba(255, 255, 255, 0.18);
     922  position: relative;
     923  overflow: hidden;
     924}
     925
     926@keyframes rotate {
     927  from {
     928    transform: rotate(0deg);
     929  }
     930
     931  to {
     932    transform: rotate(360deg);
     933  }
     934}
     935
     936.rp-about-about-hero-content {
     937  max-width: 800px;
     938  margin: 0 auto;
     939  position: relative;
     940  z-index: 1;
     941}
     942
     943.rp-about-logo {
     944  height: 100px;
     945  width: auto;
     946  margin-bottom: 1.5rem;
     947  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
     948  transition: var(--transition);
     949  border-radius: 29px;
     950  overflow: visible;
     951  background: #fff;
     952
     953}
     954
     955.rp-about-logo:hover {
     956  transform: scale(1.05) rotate(-5deg);
     957}
     958
     959.rp-about-about-hero h1 {
     960  color: #fff;
     961}
     962
     963.rp-about-about-hero h1 span {
     964  font-size: 0.9rem;
     965  background: rgba(255, 255, 255, 0.2);
     966  padding: 0.3rem 0.8rem;
     967  border-radius: 20px;
     968  vertical-align: middle;
     969  margin-left: 0.75rem;
     970  font-weight: 500;
     971  backdrop-filter: blur(4px);
     972}
     973
     974.rp-about-tagline {
     975  font-size: 15px;
     976  opacity: 0.9;
     977  margin-left: auto;
     978  margin-right: auto;
     979}
     980
     981
     982
     983.rp-about-button {
     984  display: inline-flex;
     985  align-items: center;
     986  padding: 0.85rem 1.75rem;
     987  margin: 0 0.5rem;
     988  border-radius: var(--border-radius);
     989  text-decoration: none;
     990  font-weight: 600;
     991  transition: var(--transition);
     992  position: relative;
     993  overflow: hidden;
     994  border: none;
     995  cursor: pointer;
     996  z-index: 1;
     997}
     998
     999.rp-about-button::before {
     1000  content: '';
     1001  position: absolute;
     1002  top: 0;
     1003  left: 0;
     1004  width: 100%;
     1005  height: 100%;
     1006  background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
     1007  z-index: -1;
     1008  transition: var(--transition);
     1009  opacity: 0;
     1010}
     1011
     1012.rp-about-button:hover::before {
     1013  opacity: 1;
     1014}
     1015
     1016
     1017
     1018.rp-about-button {
     1019  background: rgb(200, 212, 255);
     1020  color: #444edb;
     1021  backdrop-filter: blur(4px);
     1022  border: 1px solid rgba(255, 255, 255, 0.2);
     1023  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
     1024}
     1025
     1026.rp-about-button:hover {
     1027  background: rgba(255, 255, 255, 0.25);
     1028  transform: translateY(-3px);
     1029  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
     1030}
     1031
     1032.rp-about-cta-buttons .dashicons {
     1033  margin-right: 10px;
     1034  vertical-align: middle;
     1035}
     1036
     1037/* Section Headers */
     1038.rp-about-section-header {
     1039  text-align: center;
     1040  margin-bottom: 2rem;
     1041}
     1042
     1043.rp-about-section-header h2 {
     1044  font-size: 26px;
     1045  color: var(--text);
     1046  margin-bottom: 0.75rem;
     1047  font-weight: 700;
     1048  position: relative;
     1049  display: inline-block;
     1050}
     1051
     1052.rp-about-section-header h2::after {
     1053  content: '';
     1054  position: absolute;
     1055  bottom: -10px;
     1056  left: 50%;
     1057  transform: translateX(-50%);
     1058  width: 60px;
     1059  height: 3px;
     1060  background: linear-gradient(90deg, var(--primary), var(--primary-light));
     1061  border-radius: 3px;
     1062}
     1063
     1064.rp-about-section-header p {
     1065  font-size: 16px;
     1066  color: var(--text-light);
     1067  margin-top: 1rem;
     1068  max-width: 700px;
     1069  margin-left: auto;
     1070  margin-right: auto;
     1071}
     1072
     1073/* Plugins Grid - Modern App Store Style */
     1074.rp-about-plugins-grid {
     1075  display: grid;
     1076  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
     1077  gap: 20px;
     1078  margin-bottom: 3rem;
     1079}
     1080
     1081.rp-about-plugin-card {
     1082  display: flex;
     1083  background: var(--card-bg);
     1084  border-radius: var(--border-radius);
     1085  overflow: hidden;
     1086  box-shadow: var(--box-shadow);
     1087  transition: var(--transition);
     1088  border: 1px solid rgba(0, 0, 0, 0.05);
     1089  flex-direction: column;
     1090}
     1091
     1092.rp-about-plugin-card:hover {
     1093  transform: translateY(-8px);
     1094  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
     1095}
     1096
     1097.rp-about-plugin-card img {
     1098  width: 90px;
     1099  height: 90px;
     1100  object-fit: contain;
     1101  padding: 1.5rem;
     1102  align-self: center;
     1103  transition: var(--transition);
     1104}
     1105
     1106.rp-about-plugin-card:hover img {
     1107  transform: scale(1.1);
     1108}
     1109
     1110.rp-about-plugin-content {
     1111  padding: 0 10px 20px;
     1112  flex: 1;
     1113  display: flex;
     1114  flex-direction: column;
     1115}
     1116
     1117.rp-about-plugin-content h3 {
     1118  margin-top: 0;
     1119  margin-bottom: 1rem;
     1120  color: var(--text);
     1121  font-size: 18px;
     1122  font-weight: 600;
     1123  text-align: center;
     1124}
     1125
     1126.rp-about-plugin-content p {
     1127  color: var(--text-light);
     1128  margin-bottom: 1.5rem;
     1129  font-size: 14px;
     1130  line-height: 1.7;
     1131  flex-grow: 1;
     1132}
     1133
     1134.rp-about-plugin-footer {
     1135  display: flex;
     1136  justify-content: space-between;
     1137  align-items: center;
     1138}
     1139
     1140.salesafw-ab-button {
     1141  padding: 0.65rem 1.25rem;
     1142  border-radius: var(--border-radius);
     1143  text-decoration: none;
     1144  font-weight: 600;
     1145  transition: var(--transition);
     1146  border: none;
     1147  cursor: pointer;
     1148}
     1149
     1150.salesafw-ab-button-secondary {
     1151  background: linear-gradient(135deg, #f5f5f5 0%, #e9e9e9 100%);
     1152  color: var(--text);
     1153  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
     1154}
     1155
     1156.salesafw-ab-button-secondary:hover {
     1157  background: linear-gradient(135deg, #e9e9e9 0%, #ddd 100%);
     1158  transform: translateY(-2px);
     1159  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
     1160}
     1161
     1162/* CTA Section - Floating Effect */
     1163.rp-about-about-cta {
     1164  background: linear-gradient(135deg, rgba(248, 249, 250, 0.9) 0%, rgba(241, 242, 246, 0.9) 100%);
     1165  border-radius: var(--border-radius);
     1166  padding: 4rem 2rem;
     1167  text-align: center;
     1168  margin-bottom: 3rem;
     1169  box-shadow: var(--box-shadow);
     1170  border: 1px solid rgba(255, 255, 255, 0.5);
     1171  position: relative;
     1172  overflow: hidden;
     1173}
     1174
     1175.rp-about-cta-content {
     1176  position: relative;
     1177  z-index: 1;
     1178}
     1179
     1180.rp-about-cta-content h2 {
     1181  font-size: 24px;
     1182  margin-top: 0;
     1183  margin-bottom: 0.75rem;
     1184  font-weight: 700;
     1185}
     1186
     1187.rp-about-cta-content p {
     1188  font-size: 16px;
     1189  color: var(--text-light);
     1190  margin-bottom: 2.5rem;
     1191  max-width: 700px;
     1192  margin-left: auto;
     1193  margin-right: auto;
     1194}
     1195
     1196.rp-about-cta-buttons {
     1197  display: flex;
     1198  justify-content: center;
     1199  gap: 1.5rem;
     1200  flex-wrap: wrap;
     1201}
     1202
     1203/* Footer */
     1204.rp-about-about-footer {
     1205  text-align: center;
     1206  color: var(--text-light);
     1207  font-size: 0.95rem;
     1208  border-top: 1px solid rgba(0, 0, 0, 0.05);
     1209  position: relative;
     1210}
     1211
     1212.rp-about-about-footer::before {
     1213  content: '';
     1214  position: absolute;
     1215  top: 0;
     1216  left: 50%;
     1217  transform: translateX(-50%);
     1218  width: 100px;
     1219  height: 3px;
     1220  background: linear-gradient(90deg, var(--primary), var(--primary-light));
     1221}
     1222
     1223.rp-about-about-footer a {
     1224  color: var(--primary);
     1225  text-decoration: none;
     1226  font-weight: 500;
     1227  transition: var(--transition);
     1228}
     1229
     1230.rp-about-about-footer a:hover {
     1231  color: var(--primary-light);
     1232  text-decoration: underline;
     1233}
     1234
     1235/* Responsive Design */
     1236@media (max-width: 1024px) {
     1237  .rp-about-about-hero h1 {
     1238    font-size: 2.5rem;
     1239  }
     1240
     1241  .rp-about-section-header h2 {
     1242    font-size: 2rem;
     1243  }
     1244}
     1245
     1246@media (max-width: 768px) {
     1247  .rp-about-about-hero {
     1248    padding: 3rem 1.5rem;
     1249  }
     1250
     1251  .rp-about-about-hero h1 {
     1252    font-size: 2.25rem;
     1253  }
     1254
     1255  .rp-about-tagline {
     1256    font-size: 1.2rem;
     1257  }
     1258
     1259
     1260  .rp-about-button {
     1261    width: 100%;
     1262    justify-content: center;
     1263  }
     1264
     1265  .rp-about-plugin-card {
     1266    flex-direction: column;
     1267  }
     1268
     1269  .rp-about-plugin-card img {
     1270    width: 100%;
     1271    max-height: 150px;
     1272    padding: 1.5rem 1.5rem 0;
     1273  }
     1274
     1275  .rp-about-cta-buttons {
     1276    flex-direction: column;
     1277    gap: 1rem;
     1278  }
     1279}
     1280
     1281@media (max-width: 480px) {
     1282  .rp-about-about-hero h1 {
     1283    font-size: 2rem;
     1284  }
     1285
     1286
     1287  .rp-about-plugins-grid {
     1288    grid-template-columns: 1fr;
     1289  }
     1290
     1291  .rp-about-section-header h2 {
     1292    font-size: 1.75rem;
     1293  }
     1294}
  • replypilot-ai/trunk/assets/js/replypilot-ai.js

    r3320959 r3339544  
    11document.addEventListener('DOMContentLoaded', function () {
    22
    3   const tabs = document.querySelectorAll('.rp-nav-tab');
    4   const tabContents = document.querySelectorAll('.rp-tab-content');
     3    const tabs = document.querySelectorAll('.rp-nav-tab');
     4    const tabContents = document.querySelectorAll('.rp-tab-content');
    55
    6   tabs.forEach(tab => {
    7       tab.addEventListener('click', function (e) {
    8           e.preventDefault();
     6    tabs.forEach(tab => {
     7        tab.addEventListener('click', function (e) {
     8            e.preventDefault();
    99
    10           // Remove active class from all tabs and contents
    11           tabs.forEach(t => t.classList.remove('active'));
    12           tabContents.forEach(c => c.classList.remove('active'));
     10            // Remove active class from all tabs and contents
     11            tabs.forEach(t => t.classList.remove('active'));
     12            tabContents.forEach(c => c.classList.remove('active'));
    1313
    14           // Add active class to clicked tab and corresponding content
    15           this.classList.add('active');
    16           const tabId = this.getAttribute('data-tab');
    17           console.log(tabId);
    18           document.getElementById(tabId).classList.add('active');
    19       });
    20   });
     14            // Add active class to clicked tab and corresponding content
     15            this.classList.add('active');
     16            const tabId = this.getAttribute('data-tab');
     17            console.log(tabId);
     18            document.getElementById(tabId).classList.add('active');
     19        });
     20    });
    2121
    22   // Range slider value display
     22    // Range slider value display
    2323
    24   const rangeSlider = document.querySelector('input[type="range"]');
    25   if(rangeSlider){
    26   const rangeValue = rangeSlider.nextElementSibling;
     24    const rangeSlider = document.querySelector('input[type="range"]');
     25    if (rangeSlider) {
     26        const rangeValue = rangeSlider.nextElementSibling;
    2727
    28   rangeSlider.addEventListener('input', function () {
    29       rangeValue.textContent = this.value;
    30   });
    31   }
    32   // Toggle switches
     28        rangeSlider.addEventListener('input', function () {
     29            rangeValue.textContent = this.value;
     30        });
     31    }
     32
     33    // Save button animation
     34    const saveBtn = document.querySelectorAll('.rp-save-button');
     35    saveBtn.forEach(btn => {
     36        btn.addEventListener('click', function (e) {
     37            console.log('Save button clicked');
     38            const originalText = this.innerHTML;
     39            this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Saving...';
     40
     41        });
     42    });
     43
     44    const tagInput = document.getElementById('rp-tag-input');
     45    const tagsContainer = document.getElementById('rp-tags');
     46    const hiddenInput = document.getElementById('rp-hidden-suggestion-tags');
     47    let tags = [];
     48    tagInput.addEventListener('keydown', function (e) {
     49        if (e.key === 'Enter') {
     50            e.preventDefault();
     51            const value = tagInput.value.trim();
     52            if (value !== '' && !tags.includes(value)) {
     53                tags.push(value);
     54                tagInput.value = '';
     55                updateTags();
     56            }
     57        }
     58    });
     59
     60    function updateTags() {
     61        tagsContainer.innerHTML = '';
     62        tags.forEach(tag => {
     63            const tagEl = document.createElement('span');
     64            tagEl.className = 'rp-tag';
     65            tagEl.innerHTML = `${tag} <span class="rp-remove-btn">&times;</span>`;
     66            tagEl.querySelector('.rp-remove-btn').addEventListener('click', () => {
     67                tags = tags.filter(t => t !== tag);
     68                updateTags();
     69            });
     70            tagsContainer.appendChild(tagEl);
     71        });
     72        hiddenInput.value = tags.join(',');
     73    }
     74        const storedTags = hiddenInput.value.trim();
     75    if (storedTags !== '') {
     76      tags = storedTags.split(',').map(t => t.trim()).filter(t => t);
     77      updateTags();
     78    }
     79});
    3380
    3481
    3582
    36   // Save button animation
    37   const saveBtn = document.querySelectorAll('.rp-save-button');
    38   saveBtn.forEach(btn => {
    39       btn.addEventListener('click', function (e) { 
    40           console.log('Save button clicked');
    41           const originalText = this.innerHTML;
    42           this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Saving...';
    43        
    44       });
    45   });
    4683
    4784
    48 
    49 });
    50 
    51 
    52 jQuery(document).ready(function($) {
    53     $('.delete-conversation').on('click', function(e) {
     85jQuery(document).ready(function ($) {
     86    $('.delete-conversation').on('click', function (e) {
    5487        if (!confirm('Are you sure you want to delete this conversation? This cannot be undone.')) {
    5588            e.preventDefault();
     
    5790    });
    5891});
     92
  • replypilot-ai/trunk/assets/js/script.js

    r3335155 r3339544  
    88
    99    function chatbotfetchMessages(conversation_id) {
     10        if (!conversation_id) {
     11            return;
     12        }
    1013        fetch(replypilotChatbot.ajaxurl, {
    1114            method: 'POST',
     
    3235
    3336    // Chatbot state
    34     const userid = get_chatbot_Cookie("replypilot_conversation_id");
     37    var user_data_collection = replypilotChatbot.user_data_collection
     38    var userid = get_chatbot_Cookie("replypilot_conversation_id");
    3539    let chatHistory = [];
    3640    let isOpen = userid ? true : false;
    3741    let conversationId = userid ?? null;
    3842    let userData = null;
    39 
     43 $('#replypilot-chatbot-toggle').on('click', function () {
     44    if (!user_data_collection && !userid) {
     45        userid = submitUserData(true);
     46        isOpen = true
     47    }
     48});
    4049    // Initialize chatbot
    4150    function initChatbot() {
     
    117126
    118127    // Submit user data
    119     function submitUserData() {
    120         const name = $('#replypilot-user-name').val().trim();
    121         const email = $('#replypilot-user-email').val().trim();
     128    function submitUserData(withOut) {
     129        let name = $('#replypilot-user-name').val().trim();
     130        let email = $('#replypilot-user-email').val().trim();
     131        if (withOut) {
     132            name = 'Visitor ';
     133            email = 'visitor@email.com';
     134        }
    122135
    123136        // Basic validation
     
    126139            return;
    127140        }
    128 
     141        const typingId = typing_alart()
    129142        // Show loading state
    130143        $('#replypilot-user-data-submit').prop('disabled', true).text('Starting...');
     
    148161                hideUserDataForm();
    149162                toggleChatbot();
     163                $(`#${typingId}`).remove();
     164                userid =  response.data.conversation_id;
    150165                // Add welcome message
    151                 addMessage('bot', response.data.welcome_message);
     166                addMessage('bot', response.data.welcome_message,response.data.suggest);
    152167
    153168                // Focus input
     
    178193        }
    179194
    180         message = message.replace(/\*\*/g, '');
    181195        message = message.replace(/\n/g, '<br>');
     196        message = message.replace(/\*\*(.*?)\*\*/g, '<b>$1</b>')
    182197        date = data ? new Date(data) : new Date();
    183198        const timestamp = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
     
    202217    }
    203218
    204     // Send message to server
    205     function sendMessage(selectedService = false) {
    206         if (!conversationId) {
    207             showUserDataForm();
    208             return;
    209         }
    210         if (selectedService) {
    211             var input = selectedService;
    212         } else {
    213             var input = $('#replypilot-chatbot-user-input').val().trim();
    214             if (!input) return;
    215         }
    216         // Add user message to chat
    217         addMessage('user', input);
    218 
    219         $('#replypilot-chatbot-user-input').val('').css('height', '40px');
    220 
    221         // Show typing indicator
    222         const typingId = 'replypilot-typing-' + Date.now();
     219    function typing_alart(){
     220        let typingId_alrt = 'replypilot-typing-' + Date.now();
    223221        $('#replypilot-chatbot-messages').append(`
    224             <div id="${typingId}" class="replypilot-message replypilot-bot-message replypilot-typing">
     222            <div id="${typingId_alrt}" class="replypilot-message replypilot-bot-message replypilot-typing">
    225223                <div class="message-content">
    226224                    <span class="replypilot-typing-dot"></span>
     
    230228            </div>
    231229        `);
     230        return typingId_alrt;
     231    }
     232    // Send message to server
     233    function sendMessage(selectedService = false) {
     234        if (!conversationId) {
     235            showUserDataForm();
     236            return;
     237        }
     238        if (selectedService) {
     239            var input = selectedService;
     240        } else {
     241            var input = $('#replypilot-chatbot-user-input').val().trim();
     242            if (!input) return;
     243        }
     244        // Add user message to chat
     245        addMessage('user', input);
     246
     247        $('#replypilot-chatbot-user-input').val('').css('height', '40px');
     248
     249        // Show typing indicator
     250        const typingId = typing_alart()
    232251        scrollToBottom();
    233252        // Send to server
  • replypilot-ai/trunk/custom-handle-ai-reply.php

    r3297027 r3339544  
    4444
    4545            $post_content = $selected_comment_basedr == 'content' ? $post->post_content : $post->post_title;
    46             // Ensure it's not the comment itself that is replying
    4746            if (true) {
    48                 // Get the content of the comment
    4947                $comment_content = $comment->comment_content;
     48                 if ($comment->comment_approved == '1') {
    5049
    51                 if ($comment->comment_approved == '1') {
    52                     // Call AI API to generate a reply
    5350                    $ai_reply = replypilot_ai_get_ai_reply($comment_content, $post_content, true);
    5451
  • replypilot-ai/trunk/readme.txt

    r3335160 r3339544  
    55Tested up to: 6.8
    66Requires PHP: 7.4
    7 Stable tag: 1.7.1
     7Stable tag: 1.8.0
    88License: GPL-2.0+
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    140140
    141141== Changelog ==
     142= 1.8.0 =
     143* Added new plugin setting options for enhanced customization.
     144* Added "About" page with additional information and improved layout.
     145
    142146= 1.7 =
    143147* Now user can refresh the page and close the browser but still the chat history will be back".
     
    167171== Upgrade Notice ==
    168172
    169 = 1.7 =
    170 * New Feature: Now user can refresh the page and close the browser but still the chat history will be back.
    171 
     173= 1.8.0 =
     174* Added new plugin setting options for enhanced customization.
     175* Added "About" page with additional information and improved layout.
    172176
    173177== External Services ==
  • replypilot-ai/trunk/replypilot-ai.php

    r3335160 r3339544  
    44Plugin URI:  https://replypilot.techbeeps.com/
    55Description: AI-powered plugin that auto-generates human-like replies to user comments and provides a real-time chatbot on your website.
    6 Version:     1.7.1
     6Version:     1.8.0
    77Author:      Techbeeps
    88Author URI:  https://techbeeps.co.in/
     
    1616}
    1717
    18 define('REPLYPILOT_AI_TBS', '1.7.1');
     18define('REPLYPILOT_AI_TBS', '1.8.0');
    1919define('REPLYPILOT_AI_TBS_PATH', plugin_dir_path(__FILE__));
    2020define('REPLYPILOT_AI_TBS_URL',  __FILE__);
     21define('REPLYPILOT_AI_TBS_URL_PLUGIN', plugin_dir_url(__FILE__));
    2122
    2223
Note: See TracChangeset for help on using the changeset viewer.