Plugin Directory

Changeset 3337303


Ignore:
Timestamp:
07/31/2025 01:20:42 PM (7 months ago)
Author:
aurelienlws
Message:

Changed IA Name. Added a modale when not compatible

Location:
lws-tools
Files:
259 added
9 edited

Legend:

Unmodified
Added
Removed
  • lws-tools/trunk/css/lws_tk_style.css

    r3336657 r3337303  
    10751075    margin: 0;
    10761076    padding-top: 30px;
     1077}
     1078
     1079.lws_tk_subtitle_plugins {
     1080    text-align: left;
     1081    font-size: 16px;
     1082    line-height: 30px;
     1083    font-weight: bold;
     1084    letter-spacing: 0px;
     1085    color: #1D2327;
     1086    padding-left: 30px;
     1087    margin: 0;
     1088    padding-top: 10px;
    10771089}
    10781090
     
    14451457}
    14461458/* MODALE NEW v2 */
     1459
     1460
     1461.lws-modal {
     1462    display: none;
     1463    position: fixed;
     1464    z-index: 10000;
     1465    left: 0;
     1466    top: 0;
     1467    width: 100%;
     1468    height: 100%;
     1469    overflow: auto;
     1470    background-color: rgba(0,0,0,0.4);
     1471    backdrop-filter: blur(2px);
     1472}
     1473
     1474.lws-modal-content {
     1475    background-color: #ffffff;
     1476    margin: auto;
     1477    top: 5%;
     1478    border: 1px solid #dee2e6;
     1479    border-radius: 6px;
     1480    width: 100%;
     1481    max-width: 800px;
     1482    position: relative;
     1483    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
     1484    animation: modalSlideIn 0.3s ease-out;
     1485}
     1486
     1487@keyframes modalSlideIn {
     1488    from {
     1489        opacity: 0;
     1490        transform: translateY(-50px);
     1491    }
     1492    to {
     1493        opacity: 1;
     1494        transform: translateY(0);
     1495    }
     1496}
     1497
     1498.lws-modal-close {
     1499    color: #6c757d;
     1500    float: right;
     1501    font-size: 24px;
     1502    font-weight: normal;
     1503    position: absolute;
     1504    top: 12px;
     1505    right: 16px;
     1506    cursor: pointer;
     1507    z-index: 1;
     1508    opacity: 0.7;
     1509}
     1510
     1511.lws-modal-close:hover,
     1512.lws-modal-close:focus {
     1513    color: #000;
     1514    text-decoration: none;
     1515    opacity: 1;
     1516}
     1517
     1518.lws-modal-header {
     1519    background: #ffffff;
     1520    color: #212529;
     1521    padding: 20px 24px 16px;
     1522    border-bottom: 1px solid #dee2e6;
     1523    border-radius: 6px 6px 0 0;
     1524}
     1525
     1526.lws-modal-header h2 {
     1527    margin: 0;
     1528    font-size: 20px;
     1529    font-weight: 500;
     1530    color: #212529;
     1531}
     1532
     1533.lws-modal-body {
     1534    padding: 24px;
     1535    color: #495057;
     1536}
     1537
     1538.lws-modal-title {
     1539    font: normal normal bold 22px/32px Poppins;
     1540    color: #292F34;
     1541    text-align: center;
     1542}
     1543
     1544.lws-modal-subtitle {
     1545    font-size: 15px;
     1546    /* color: #6c757d; */
     1547    margin-bottom: 20px;
     1548    line-height: 1.5;
     1549}
     1550
     1551.lws-modal-features {
     1552    margin-bottom: 24px;
     1553}
     1554
     1555.lws-modal-features h3 {
     1556    color: #212529;
     1557    font-size: 16px;
     1558    font-weight: 500;
     1559    margin-bottom: 12px;
     1560}
     1561
     1562.lws-modal-features ul {
     1563    list-style: none;
     1564    padding: 0;
     1565    margin: 0;
     1566}
     1567
     1568.lws-modal-features li {
     1569    padding: 6px 0;
     1570    position: relative;
     1571    padding-left: 24px;
     1572    color: #495057;
     1573    font-size: 14px;
     1574}
     1575
     1576.lws-modal-features li::before {
     1577    content: "•";
     1578    position: absolute;
     1579    left: 8px;
     1580    top: 6px;
     1581    color: #007bff;
     1582    font-size: 16px;
     1583    font-weight: bold;
     1584}
     1585
     1586.lws-modal-offer {
     1587    background: #f8f9fa;
     1588    padding: 20px;
     1589    border-radius: 4px;
     1590    border: 1px solid #e9ecef;
     1591}
     1592
     1593.lws-modal-offer h3 {
     1594    color: #212529;
     1595    font-size: 16px;
     1596    font-weight: 500;
     1597    margin-bottom: 8px;
     1598}
     1599
     1600.lws-modal-offer-subtitle {
     1601    color: #6c757d;
     1602    margin-bottom: 16px;
     1603    font-size: 14px;
     1604}
     1605
     1606.lws-modal-benefits {
     1607    text-align: left;
     1608    margin-bottom: 20px;
     1609}
     1610
     1611.lws-benefit {
     1612    padding: 4px 0;
     1613    position: relative;
     1614    padding-left: 20px;
     1615    color: #495057;
     1616    font-size: 14px;
     1617}
     1618
     1619.lws-benefit::before {
     1620    content: "✓";
     1621    position: absolute;
     1622    left: 0;
     1623    top: 4px;
     1624    color: #28a745;
     1625    font-weight: bold;
     1626    font-size: 12px;
     1627}
     1628
     1629.lws-modal-price {
     1630    margin-bottom: 20px;
     1631}
     1632
     1633.lws-price-highlight {
     1634    background: #fff3cd;
     1635    color: #856404;
     1636    border: 1px solid #ffeaa7;
     1637    padding: 8px 16px;
     1638    border-radius: 4px;
     1639    font-weight: 500;
     1640    font-size: 14px;
     1641    display: inline-block;
     1642}
     1643
     1644.lws-modal-cta {
     1645    padding: 10px 20px;
     1646    text-decoration: none;
     1647    font-weight: 400;
     1648    font-size: 14px;
     1649    display: inline-block;
     1650    transition: background-color 0.15s ease-in-out;
     1651    border: 1px solid #007bff;
     1652    background: #1C469D 0% 0% no-repeat padding-box;
     1653    border-radius: 22px;
     1654    color: #fff;
     1655}
     1656
     1657.lws-modal-cta:hover {
     1658    background: #0056b3;
     1659    border-color: #0056b3;
     1660    text-decoration: none;
     1661    color: white;
     1662}
     1663
     1664.lws-modal-cta:focus {
     1665    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
     1666    outline: none;
     1667}
     1668
     1669@media (max-width: 768px) {
     1670    .lws-modal-content {
     1671        width: 95%;
     1672        margin: 5% auto;
     1673    }
     1674
     1675    .lws-modal-body {
     1676        padding: 20px;
     1677    }
     1678
     1679    .lws-modal-offer {
     1680        padding: 16px;
     1681    }
     1682}
     1683
     1684span.lwsop_prom_bullet_point_text {
     1685    font: normal normal normal 15px/25px Poppins;
     1686    color: #292F34;
     1687}
     1688
     1689.lwsop_prom_bullet_element {
     1690    display: flex;
     1691    align-items: center;
     1692    gap: 10px;
     1693    justify-content: flex-start;
     1694}
     1695
     1696.lwsop_prom_block {
     1697    display: flex;
     1698    align-items: center;
     1699    justify-content: space-between;
     1700}
     1701
     1702.lwsop_learnmore_offers {
     1703    background: #1C469D 0% 0% no-repeat padding-box;
     1704    border-radius: 22px;
     1705    height: 40px;
     1706    display: flex;
     1707    align-items: center;
     1708    padding: 0 20px;
     1709    font: normal normal normal 14px/24px Poppins;
     1710    color: #FFFFFF;
     1711}
     1712
     1713.lwsop_learnmore_offers:focus,
     1714.lwsop_learnmore_offers:hover {
     1715    text-decoration: none;
     1716    color: #FFFFFF;
     1717    background: #14306b 0% 0% no-repeat padding-box;
     1718}
     1719
     1720span.lwsop_prom_bullet_point_plugin_specific {
     1721    background: #ECF5FE 0% 0% no-repeat padding-box;
     1722    border-radius: 16px;
     1723    font: normal normal 600 15px/5px Open Sans;
     1724    color: #2893E9;
     1725    padding: 5px 15px;
     1726    height: 32px;
     1727    display: flex;
     1728    align-items: center;
     1729    justify-content: flex-start;
     1730}
  • lws-tools/trunk/ia/ia_support.php

    r3336657 r3337303  
    33class IaSupport {
    44    public function __construct() {
    5         if (!get_option('lws_tk_ia_chatbot_state', false)) {
     5        $is_lws = false;
     6        if (isset($_SERVER['lwscache'])) {
     7            $is_lws = true;
     8        }
     9
     10        if (!get_option('lws_tk_ia_chatbot_state', false) && $is_lws) {
    611            add_action('admin_footer', [$this, 'add_support_button']);
    712        }
  • lws-tools/trunk/ia/ia_tab.php

    r3336657 r3337303  
    11<?php
    22$arr = array('strong' => array());
     3
     4$is_lws = false;
     5if (isset($_SERVER['lwscache'])) {
     6    $is_lws = true;
     7}
    38?>
    49
     
    5964                            <?php esc_html_e('Activate the IA Chatbot', 'lws-tools'); ?>
    6065                            <label class="mab_mml_ttbt_td_switch">
    61                                 <input class="mab_mml_ttbt_input" name="ia_chatbot_state" id="ia_chatbot_state" type="checkbox" <?php echo (get_option('lws_tk_ia_chatbot_state', false) ? '' : 'checked'); ?>>
     66                                <input class="mab_mml_ttbt_input" name="ia_chatbot_state" id="ia_chatbot_state" type="checkbox" <?php echo (get_option('lws_tk_ia_chatbot_state', false) || !$is_lws) ? '' : 'checked'; ?>>
    6267                                <span class="mab_mml_ttbt_td_s_slider round"></span>
    6368                            </label>
  • lws-tools/trunk/languages/lws-tools-fr_FR.po

    r3336657 r3337303  
    10101010msgstr "Gestion IA"
    10111011
    1012 msgid "Ethan is your own virtual assistant, here to help you out while building your website. Ask him anything you want his help with, from creating a post to troubleshooting issues."
    1013 msgstr "Ethan est votre propre assistant virtuel, ici pour vous aider à construire votre site. Demandez-lui tout ce dont vous avez besoin, de la création d'un article à la résolution de problèmes."
    1014 
    1015 msgid "Activate Ethan, the AI assistant"
    1016 msgstr "Activer Ethan, l'assistant IA"
    1017 
    1018 msgid "Ethan (AI Assistant)"
    1019 msgstr "Ethan (Assistant IA)"
     1012msgid "Activate WPilot, the AI assistant"
     1013msgstr "Activer WPilot, l'assistant IA"
     1014
     1015msgid "WPilot (AI Assistant)"
     1016msgstr "WPilot (Assistant IA)"
    10201017
    10211018msgid "IA Chatbot state updated successfully."
     
    10331030msgid "Chatbot is only available on LWS hostings."
    10341031msgstr "Le chatbot est uniquement disponible sur les hébergements LWS."
     1032
     1033msgid "WPilot, your personal WordPress expert"
     1034msgstr "WPilot, votre expert WordPress personnel"
     1035
     1036msgid "WPilot is your dedicated AI assistant for WordPress. He automatically analyzes your site, plugins, and theme to provide personalized advice. He guides you through creating, updating, and optimizing your site while helping you troubleshoot common issues. Enjoy a true co-pilot for building and evolving your site with ease."
     1037msgstr "WPilot est votre assistant IA dédié à WordPress. Il analyse automatiquement votre site, vos plugins et votre thème pour vous fournir des conseils personnalisés. Il vous guide dans la création, la mise à jour et l'optimisation de votre site tout en vous aidant à résoudre les problèmes courants. Profitez d'un véritable copilote pour construire et faire évoluer votre site en toute simplicité."
     1038
     1039msgid "Assistant Unavailable"
     1040msgstr "Assistant indisponible"
     1041
     1042msgid "The intelligent assistant WPilot is reserved for customers with LWS hosting."
     1043msgstr "L'assistant intelligent WPilot est réservé aux clients disposant d'un hébergement LWS."
     1044
     1045msgid "WPilot is your WordPress co-pilot:"
     1046msgstr "WPilot est votre copilote WordPress :"
     1047
     1048msgid "Analyzes your site, extensions and theme"
     1049msgstr "Il analyse votre site, vos extensions et votre thème"
     1050
     1051msgid "Helps you create, maintain and optimize your site"
     1052msgstr "Il vous aide à créer, maintenir et optimiser votre site"
     1053
     1054msgid "Provides personalized advice and solves common problems"
     1055msgstr "Il vous propose des conseils personnalisés et résout les problèmes courants"
     1056
     1057msgid "Get WPilot with LWS WordPress hosting"
     1058msgstr "Obtenez WPilot avec l'hébergement WordPress LWS"
     1059
     1060msgid "The best WordPress host to create your site easily."
     1061msgstr "Le meilleur hébergeur WordPress pour créer votre site facilement."
     1062
     1063msgid "1-click installation – Ultra-fast and reliable WordPress"
     1064msgstr "Installation en 1 clic – WordPress ultra rapide et fiable"
     1065
     1066msgid "Free domain (.fr, .com...)"
     1067msgstr "Domaine gratuit (.fr, .com…)"
     1068
     1069msgid "Secure site + 100% SSD storage"
     1070msgstr "Site sécurisé + stockage 100 % SSD"
     1071
     1072msgid "AI, Divi Builder, Elegant Themes included"
     1073msgstr "IA, Divi Builder, Elegant Themes inclus"
     1074
     1075msgid "Only €2.99/month instead of €4.99"
     1076msgstr "Seulement 2,99 €/mois au lieu de 4,99 €"
     1077
     1078msgid "Take advantage of the LWS WordPress offer"
     1079msgstr "Profiter de l'offre WordPress LWS"
     1080
     1081msgid "Available only with LWS Hostings"
     1082msgstr "Disponible uniquement avec les hébergements LWS"
  • lws-tools/trunk/lws-tools.php

    r3336657 r3337303  
    55 * Plugin URI:        https://www.lws.fr/
    66 * Description:       Optimize and modify your website's parameters
    7  * Version:           2.6
     7 * Version:           2.6.1
    88 * Author:            LWS
    99 * Author URI:        https://www.lws.fr
  • lws-tools/trunk/readme.txt

    r3336657 r3337303  
    44Requires at least: 5.0
    55Tested up to: 6.8
    6 Stable tag: 2.6
     6Stable tag: 2.6.1
    77Requires PHP: 7.3
    88Author : LWS
     
    2121With LWS Tools, get a hold on various <strong>tools and options to optimize your website</strong>. From deactivating emotes or hiding sensible informations to deactivating REST API!
    2222You can access and change several parameters, get informations on your database and your server and even more.
     23
     24= WPilot - Your WordPress AI Assistant =
     25
     26Meet <strong>WPilot</strong>, your dedicated AI assistant for WordPress, available exclusively with LWS hosting. WPilot automatically analyzes your site, plugins, and theme to provide personalized advice and guidance. Whether you're creating, updating, or optimizing your website, WPilot acts as your co-pilot, helping you troubleshoot common issues and make informed decisions about your WordPress site. This intelligent assistant understands your specific setup and offers tailored recommendations to enhance your website's performance and functionality.
    2327
    2428= Notifications =
     
    190194== Changelog ==
    191195
     196= 2.6.1 =
     197* Changed IA name
     198* Changed not-compatible notification
     199
    192200= 2.6 =
    193201* Added a ChatGPT Bot on the admin pages (only for administrators) to answer questions you may have on your website
  • lws-tools/trunk/view/ia.php

    r3336657 r3337303  
     1<?php
     2$is_lws = false;
     3if (isset($_SERVER['lwscache'])) {
     4    $is_lws = true;
     5}
     6?>
    17
    28<div class="lws_tk_div_title_plugins">
    39    <h3 class="lws_tk_title_plugins"> <?php esc_html_e('AI Management', 'lws-tools'); ?></h3>
     10    <h4 class="lws_tk_subtitle_plugins"><?php esc_html_e('WPilot, your personal WordPress expert', 'lws-tools'); ?></h4>
    411    <p class="lws_tk_text_base" style="margin-bottom: 0;">
    5         <?php esc_html_e('Ethan is your own virtual assistant, here to help you out while building your website. Ask him anything you want his help with, from creating a post to troubleshooting issues.', 'lws-tools'); ?>
     12        <?php esc_html_e('WPilot is your dedicated AI assistant for WordPress. He automatically analyzes your site, plugins, and theme to provide personalized advice. He guides you through creating, updating, and optimizing your site while helping you troubleshoot common issues. Enjoy a true co-pilot for building and evolving your site with ease.', 'lws-tools'); ?>
    613    </p>
    714</div>
     
    1017        <label class="lws_tk_ia_label" for=''>
    1118            <div>
    12                 <span><?php esc_html_e('Activate Ethan, the AI assistant', 'lws-tools'); ?></span>
     19                <span><?php esc_html_e('Activate WPilot, the AI assistant', 'lws-tools'); ?></span>
    1320            </div>
    1421            <label class="mab_mml_ttbt_td_switch">
    15                 <input class="mab_mml_ttbt_input" name="ia_chatbot_state" id="ia_chatbot_state" type="checkbox" <?php echo (get_option('lws_tk_ia_chatbot_state', false) ? '' : 'checked'); ?>>
     22                <input class="mab_mml_ttbt_input" name="ia_chatbot_state" id="ia_chatbot_state" type="checkbox" <?php echo ((get_option('lws_tk_ia_chatbot_state', false) || !$is_lws) ? '' : 'checked'); ?>>
    1623                <span class="mab_mml_ttbt_td_s_slider round"></span>
    1724            </label>
     
    2330    document.getElementById('ia_chatbot_state').addEventListener('change', function() {
    2431        var isChecked = this.checked;
     32        let checkbox = this;
     33
     34        let is_lws = "<?php echo $is_lws; ?>";
     35
     36        if (!is_lws) {
     37            checkbox.checked = false;
     38            showLWSModal();
     39            return;
     40        }
    2541
    2642        let ajaxRequest = jQuery.ajax({
     
    5470                            callPopup('success', '<?php echo esc_html__('IA Chatbot state updated successfully.', 'lws-tools'); ?>');
    5571                            break;
     72                        case "NOT_LWS":
     73                            callPopup('error', '<?php echo esc_html__('Chatbot is only available on LWS hostings.', 'lws-tools'); ?>');
     74                            checkbox.checked = false;
     75                            break;
    5676                        default:
    5777                            callPopup('error', '<?php echo esc_html__('Error updating IA Chatbot state.', 'lws-tools'); ?>');
     
    6686            });
    6787    });
     88
     89    function showLWSModal() {
     90        document.getElementById('lwsModal').style.display = 'block';
     91    }
     92
     93    function closeLWSModal() {
     94        document.getElementById('lwsModal').style.display = 'none';
     95    }
     96
     97    // Close modal when clicking outside of it
     98    window.onclick = function(event) {
     99        var modal = document.getElementById('lwsModal');
     100        if (event.target == modal) {
     101            modal.style.display = 'none';
     102        }
     103    }
    68104</script>
     105
     106<!-- LWS Modal -->
     107<div id="lwsModal" class="lws-modal">
     108    <div class="lws-modal-content">
     109        <span class="lws-modal-close" onclick="closeLWSModal()">&times;</span>
     110        <div class="lws-modal-body">
     111            <h2 class="lws-modal-title"><?php esc_html_e('Available only with LWS Hostings', 'lws-tools'); ?></h2>
     112            <p class="lws-modal-subtitle">
     113                <?php esc_html_e('The intelligent assistant WPilot is reserved for customers with LWS hosting.', 'lws-tools'); ?>
     114            </p>
     115
     116            <div class="lws-modal-features">
     117                <h3><?php esc_html_e('WPilot is your WordPress co-pilot:', 'lws-tools'); ?></h3>
     118                <ul>
     119                    <li><?php esc_html_e('Analyzes your site, extensions and theme', 'lws-tools'); ?></li>
     120                    <li><?php esc_html_e('Helps you create, maintain and optimize your site', 'lws-tools'); ?></li>
     121                    <li><?php esc_html_e('Provides personalized advice and solves common problems', 'lws-tools'); ?></li>
     122                </ul>
     123            </div>
     124
     125            <div class="lws-modal-offer">
     126                <h3><?php esc_html_e('Get WPilot with LWS WordPress hosting', 'lws-tools'); ?></h3>
     127                <p class="lws-modal-offer-subtitle">
     128                    <?php esc_html_e('The best WordPress host to create your site easily.', 'lws-tools'); ?>
     129                </p>
     130
     131                <div class="lws-modal-benefits">
     132                    <div class="lws-benefit">
     133                        <?php esc_html_e('1-click installation – Ultra-fast and reliable WordPress', 'lws-tools'); ?>
     134                    </div>
     135                    <div class="lws-benefit">
     136                        <?php esc_html_e('Free domain (.fr, .com...)', 'lws-tools'); ?>
     137                    </div>
     138                    <div class="lws-benefit">
     139                        <?php esc_html_e('Secure site + 100% SSD storage', 'lws-tools'); ?>
     140                    </div>
     141                    <div class="lws-benefit">
     142                        <?php esc_html_e('AI, Divi Builder, Elegant Themes included', 'lws-tools'); ?>
     143                    </div>
     144                </div>
     145
     146                <div class="lws-modal-price">
     147                    <span class="lws-price-highlight"><?php esc_html_e('Only €2.99/month instead of €4.99', 'lws-tools'); ?></span>
     148                </div>
     149            </div>
     150
     151            <div style="text-align: center; margin-top: 20px;">
     152                <a href="https://www.lws.fr/hebergement_wordpress.php" class="lws-modal-cta" target="_blank">
     153                    <?php esc_html_e('Take advantage of the LWS WordPress offer', 'lws-tools'); ?>
     154                </a>
     155            </div>
     156        </div>
     157    </div>
     158</div>
  • lws-tools/trunk/view/tabs.php

    r3336657 r3337303  
    3131    array('mysql', __('MySQL Logs', 'lws-tools')),
    3232    array('tools', __('Other Tools', 'lws-tools')),
    33     array('ia', __('Ethan (AI Assistant)', 'lws-tools')),
     33    array('ia', __('WPilot (AI Assistant)', 'lws-tools')),
    3434    array('plugins', __('Our plugins', 'lws-tools')),
    3535)
Note: See TracChangeset for help on using the changeset viewer.