Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://homepage-nach-preis.de/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. >
  9.  
  10. <channel>
  11. <title>Homepage nach Preis &#8211; Webseite erstellen lassen</title>
  12. <atom:link href="https://homepage-nach-preis.de/feed/" rel="self" type="application/rss+xml" />
  13. <link>https://homepage-nach-preis.de/</link>
  14. <description>★ Responsive Webdesigner Homepage erstellen lassen, bereits ab 299 Euro professionelle Webseite. ✓ Google-Optimiert ✓ Mobil-Optimiert &#124; Webdesign &#38; Seo</description>
  15. <lastBuildDate>Sat, 20 Apr 2024 12:05:49 +0000</lastBuildDate>
  16. <language>de-DE</language>
  17. <sy:updatePeriod>
  18. hourly </sy:updatePeriod>
  19. <sy:updateFrequency>
  20. 1 </sy:updateFrequency>
  21.  
  22. <image>
  23. <url>https://homepage-nach-preis.de/wp-content/uploads/2021/02/cropped-icon-150x150.png</url>
  24. <title>Homepage nach Preis &#8211; Webseite erstellen lassen</title>
  25. <link>https://homepage-nach-preis.de/</link>
  26. <width>32</width>
  27. <height>32</height>
  28. </image>
  29. <item>
  30. <title>HNP System Monitor Tool: Die Brücke zwischen Windows und WordPress</title>
  31. <link>https://homepage-nach-preis.de/2024/04/20/hnp-system-monitor-tool-die-bruecke-zwischen-windows-und-wordpress/</link>
  32. <comments>https://homepage-nach-preis.de/2024/04/20/hnp-system-monitor-tool-die-bruecke-zwischen-windows-und-wordpress/#respond</comments>
  33. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  34. <pubDate>Sat, 20 Apr 2024 12:05:49 +0000</pubDate>
  35. <category><![CDATA[Homepage]]></category>
  36. <category><![CDATA[Onlineshop]]></category>
  37. <category><![CDATA[Webdesign]]></category>
  38. <category><![CDATA[Anwendung]]></category>
  39. <category><![CDATA[Exe]]></category>
  40. <category><![CDATA[HNP System Monitor]]></category>
  41. <category><![CDATA[JS]]></category>
  42. <category><![CDATA[Php]]></category>
  43. <category><![CDATA[plugin]]></category>
  44. <category><![CDATA[Pyhton]]></category>
  45. <category><![CDATA[Windows]]></category>
  46. <category><![CDATA[wordpress]]></category>
  47. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8212</guid>
  48.  
  49. <description><![CDATA[<p>In der digitalen Welt von heute ist es unerlässlich, den Überblick über die Systemleistung eines Servers oder Computers zu behalten. Das HNP System Monitor Tool bietet hier eine innovative Lösung, indem es eine nahtlose Verbindung zwischen einem Windows-Computer oder Server und einer WordPress-Webseite herstellt. Aber wie funktioniert das genau? Und welche Vorteile bringt diese Verbindung mit sich? Lassen Sie uns einen tieferen Blick darauf werfen. Wie funktioniert das HNP System Monitor Tool? Das HNP System Monitor Tool nutzt eine gesicherte REST API, um die aktuelle Systemauslastung des Windows-Geräts zu erfassen und diese Daten an Ihre WordPress-Webseite zu übertragen. Dort können Sie die Daten in einer visuell strukturierten Form betrachten und analysieren. Das Beste daran? Die Einrichtung ist denkbar einfach. WordPress-Plugin: Starten und Loslegen Das mitgelieferte WordPress-Plugin ist vorkonfiguriert, sodass Sie es lediglich installieren und aktivieren müssen. Es erzeugt eine Backend-Seite in Ihrem WordPress-Admin-Dashboard, auf der Sie die Server- oder Computerleistung in Echtzeit verfolgen können. Die Daten werden ohne Neuladen der Seite aktualisiert, dank AJAX-Requests. Zudem bietet das Plugin visuelle Feedbacks durch farbige Pfeile und eine grafische Anzeige der letzten 100 Datenpunkte. Mit den integrierten Shortcodes können Sie die Daten auch im Frontend Ihrer Webseite anzeigen lassen. Exe Win Anwendung: Einfach....</p>
  50. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/20/hnp-system-monitor-tool-die-bruecke-zwischen-windows-und-wordpress/">HNP System Monitor Tool: Die Brücke zwischen Windows und WordPress</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  51. ]]></description>
  52. <content:encoded><![CDATA[<p>In der digitalen Welt von heute ist es unerlässlich, den Überblick über die Systemleistung eines Servers oder Computers zu behalten. Das HNP System Monitor Tool bietet hier eine innovative Lösung, indem es eine nahtlose Verbindung zwischen einem Windows-Computer oder Server und einer WordPress-Webseite herstellt. Aber wie funktioniert das genau? Und welche Vorteile bringt diese Verbindung mit sich? Lassen Sie uns einen tieferen Blick darauf werfen.<br />
  53. Wie funktioniert das HNP System Monitor Tool?</p>
  54. <p>Das HNP System Monitor Tool nutzt eine gesicherte REST API, um die aktuelle Systemauslastung des Windows-Geräts zu erfassen und diese Daten an Ihre WordPress-Webseite zu übertragen. Dort können Sie die Daten in einer visuell strukturierten Form betrachten und analysieren. Das Beste daran? Die Einrichtung ist denkbar einfach.<br />
  55. WordPress-Plugin: Starten und Loslegen</p>
  56. <p>Das mitgelieferte WordPress-Plugin ist vorkonfiguriert, sodass Sie es lediglich installieren und aktivieren müssen. Es erzeugt eine Backend-Seite in Ihrem WordPress-Admin-Dashboard, auf der Sie die Server- oder Computerleistung in Echtzeit verfolgen können. Die Daten werden ohne Neuladen der Seite aktualisiert, dank AJAX-Requests. Zudem bietet das Plugin visuelle Feedbacks durch farbige Pfeile und eine grafische Anzeige der letzten 100 Datenpunkte. Mit den integrierten Shortcodes können Sie die Daten auch im Frontend Ihrer Webseite anzeigen lassen.<br />
  57. Exe Win Anwendung: Einfach und Effizient</p>
  58. <p>Die begleitende Windows-64-Bit-Anwendung ist ebenfalls vorkonfiguriert. Nach dem Start der Anwendung und der Eingabe Ihrer Domain-Adresse übernimmt das System automatisch die Datenerfassung und -übertragung. Sie können den Secretkey, die Intervallzeit und andere Einstellungen direkt in der Anwendung ändern. Praktisch ist auch die Speicherungsfunktion, die die letzten Einstellungen für einen Autostart speichert.<br />
  59. Sicherheit und Performance</p>
  60. <p>Sowohl das WordPress-Plugin als auch die Windows-Anwendung setzen auf hohe Sicherheitsstandards. Mit Nonce-Abfragen, gesicherten AJAX-Verbindungen und Schutz vor XSS-Angriffen sind Ihre Daten stets sicher. Zudem sind beide Systeme performance-optimiert, ohne externe Bibliotheken oder Treiber zu benötigen.<br />
  61. Flexibilität und Erweiterbarkeit</p>
  62. <p>Das HNP System Monitor Tool bietet Ihnen die Freiheit, die Intervallzeit zum Datenaustausch nach Ihren Bedürfnissen anzupassen. Ob alle 2 Sekunden oder einmal täglich – Sie haben die Wahl. Darüber hinaus sind die Sourcefiles sowohl für das WordPress-Plugin als auch für die Windows-Anwendung im Lieferumfang enthalten. Dies ermöglicht erfahreneren Nutzern, das Tool nach Belieben anzupassen und zu erweitern.<br />
  63. Fazit</p>
  64. <p>Das HNP System Monitor Tool ist ein modernes und benutzerfreundliches System zur Erfassung und Visualisierung von Systemdaten. Mit seiner einfachen Einrichtung, hohen Sicherheitsstandards und Flexibilität ist es eine ideale Lösung für jeden, der die Leistung seines Windows-Computers oder Servers im Auge behalten und diese Daten nahtlos in seine WordPress-Webseite integrieren möchte.</p>
  65. <p>Beim Kauf erhalten Sie ein fertiges Run &amp; Go WordPress-Plugin, eine Windows-64-Bit-Anwendung, sowie alle erforderlichen Sourcefiles für Anpassungen und Erweiterungen. Nutzen Sie die Gelegenheit und bringen Sie Ihre Systemüberwachung auf das nächste Level!</p>
  66. <p><strong> Mehr Informationen:</strong></p>
  67. <p><a href="https://shop.homepage-nach-preis.de/produkt/hnp-system-monitor-for-wordpress-windows-x64/" target="_blank" rel="nofollow noopener">https://shop.homepage-nach-preis.de/produkt/hnp-system-monitor-for-wordpress-windows-x64/</a></p>
  68. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/20/hnp-system-monitor-tool-die-bruecke-zwischen-windows-und-wordpress/">HNP System Monitor Tool: Die Brücke zwischen Windows und WordPress</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  69. ]]></content:encoded>
  70. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/20/hnp-system-monitor-tool-die-bruecke-zwischen-windows-und-wordpress/feed/</wfw:commentRss>
  71. <slash:comments>0</slash:comments>
  72. </item>
  73. <item>
  74. <title>WooCommerce Warenkorb Leeren &#038; Session Button</title>
  75. <link>https://homepage-nach-preis.de/2024/04/15/woocommerce-warenkorb-leeren-session-button/</link>
  76. <comments>https://homepage-nach-preis.de/2024/04/15/woocommerce-warenkorb-leeren-session-button/#respond</comments>
  77. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  78. <pubDate>Mon, 15 Apr 2024 14:27:03 +0000</pubDate>
  79. <category><![CDATA[Allgemein]]></category>
  80. <category><![CDATA[Onlineshop]]></category>
  81. <category><![CDATA[Wordpress Code]]></category>
  82. <category><![CDATA[Button]]></category>
  83. <category><![CDATA[leeren]]></category>
  84. <category><![CDATA[Warenkorb]]></category>
  85. <category><![CDATA[Woocommerce]]></category>
  86. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8204</guid>
  87.  
  88. <description><![CDATA[<p>Das HNP Warenkorb Leeren Button Plugin für WooCommerce und WordPress erzeugt einen Button auf der Warenkorb-Seite, welcher bei Betätigung den kompletten Warenkorb leert und zudem die Session und Cookies resetet. Download: [sdm_download id=&#8221;8202&#8243; fancy=&#8221;0&#8243;] &#x3C;?php /** Plugin Name: HNP Clear WooCommerce Cart &#x26; Session Description: Ein Plugin zum Leeren des WooCommerce Warenkorbs und L&#xF6;schen von Sessions und Cookies. Version: 1.2 Author: HNP C.R. Author URI: https://homepage-nach-preis.de/ License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html */ // Exit, wenn der Direktzugriff verhindert ist if (!defined(&#x27;ABSPATH&#x27;)) { exit; } function hnp_cwc_enqueue_scripts() { if (is_cart() &#x26;&#x26; get_option(&#x27;hnp_cwc_enable&#x27;, &#x27;no&#x27;) == &#x27;yes&#x27; &#x26;&#x26; get_option(&#x27;hnp_cwc_hook_enable&#x27;, &#x27;no&#x27;) == &#x27;yes&#x27;) { $nonce = wp_create_nonce(&#x27;hnp_cwc_nonce&#x27;); $script = &#x22; var ajaxurl = &#x27;&#x22; . admin_url(&#x27;admin-ajax.php&#x27;) . &#x22;&#x27;; var nonce = &#x27;&#x22; . $nonce . &#x22;&#x27;; document.addEventListener(&#x27;DOMContentLoaded&#x27;, function() { var clearCartButton = document.getElementById(&#x27;clear-cart&#x27;); clearCartButton.addEventListener(&#x27;click&#x27;, function() { // Clear cart var xhr = new XMLHttpRequest(); xhr.open(&#x27;POST&#x27;, ajaxurl, true); xhr.setRequestHeader(&#x27;Content-Type&#x27;, &#x27;application/x-www-form-urlencoded&#x27;); xhr.setRequestHeader(&#x27;X-WP-Nonce&#x27;, nonce); xhr.onload = function() { if (this.status &#x3E;= 200 &#x26;&#x26; this.status &#x3C; 400) { console.log(&#x27;Cart Cleared&#x27;, this.responseText); // Clear sessions and cookies var xhr2 = new XMLHttpRequest(); xhr2.open(&#x27;POST&#x27;, ajaxurl, true); xhr2.setRequestHeader(&#x27;Content-Type&#x27;, &#x27;application/x-www-form-urlencoded&#x27;); xhr2.setRequestHeader(&#x27;X-WP-Nonce&#x27;, nonce); xhr2.onload = function() { if (this.status &#x3E;= 200 &#x26;&#x26; this.status &#x3C; 400) { console.log(&#x27;Sessions and Cookies Cleared&#x27;, this.responseText); // Reload....</p>
  89. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/15/woocommerce-warenkorb-leeren-session-button/">WooCommerce Warenkorb Leeren &#038; Session Button</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  90. ]]></description>
  91. <content:encoded><![CDATA[<p>Das HNP Warenkorb Leeren Button Plugin für WooCommerce und WordPress erzeugt einen Button auf der Warenkorb-Seite, welcher bei Betätigung den kompletten Warenkorb leert und zudem die Session und Cookies resetet.</p>
  92. <p><strong>Download: </strong><br />
  93. [sdm_download id=&#8221;8202&#8243; fancy=&#8221;0&#8243;]</p>
  94. <pre>
  95. &#x3C;?php
  96. /**
  97. Plugin Name: HNP Clear WooCommerce Cart &#x26; Session
  98. Description: Ein Plugin zum Leeren des WooCommerce Warenkorbs und L&#xF6;schen von Sessions und Cookies.
  99. Version: 1.2
  100. Author: HNP C.R.
  101. Author URI: https://homepage-nach-preis.de/
  102. License: GPLv3
  103. License URI: https://www.gnu.org/licenses/gpl-3.0.html
  104. */
  105.  
  106. // Exit, wenn der Direktzugriff verhindert ist
  107. if (!defined(&#x27;ABSPATH&#x27;)) {
  108.    exit;
  109. }
  110.  
  111. function hnp_cwc_enqueue_scripts() {
  112.    if (is_cart() &#x26;&#x26; get_option(&#x27;hnp_cwc_enable&#x27;, &#x27;no&#x27;) == &#x27;yes&#x27; &#x26;&#x26; get_option(&#x27;hnp_cwc_hook_enable&#x27;, &#x27;no&#x27;) == &#x27;yes&#x27;) {
  113.        $nonce = wp_create_nonce(&#x27;hnp_cwc_nonce&#x27;);
  114.        
  115.        $script = &#x22;
  116.            var ajaxurl = &#x27;&#x22; . admin_url(&#x27;admin-ajax.php&#x27;) . &#x22;&#x27;;
  117.            var nonce = &#x27;&#x22; . $nonce . &#x22;&#x27;;
  118.            
  119.            document.addEventListener(&#x27;DOMContentLoaded&#x27;, function() {
  120.                var clearCartButton = document.getElementById(&#x27;clear-cart&#x27;);
  121.                
  122.                clearCartButton.addEventListener(&#x27;click&#x27;, function() {
  123.                    // Clear cart
  124.                    var xhr = new XMLHttpRequest();
  125.                    xhr.open(&#x27;POST&#x27;, ajaxurl, true);
  126.                    xhr.setRequestHeader(&#x27;Content-Type&#x27;, &#x27;application/x-www-form-urlencoded&#x27;);
  127.                    xhr.setRequestHeader(&#x27;X-WP-Nonce&#x27;, nonce);
  128.                    xhr.onload = function() {
  129.                        if (this.status &#x3E;= 200 &#x26;&#x26; this.status &#x3C; 400) {
  130.                            console.log(&#x27;Cart Cleared&#x27;, this.responseText);
  131.                            
  132.                            // Clear sessions and cookies
  133.                            var xhr2 = new XMLHttpRequest();
  134.                            xhr2.open(&#x27;POST&#x27;, ajaxurl, true);
  135.                            xhr2.setRequestHeader(&#x27;Content-Type&#x27;, &#x27;application/x-www-form-urlencoded&#x27;);
  136.                            xhr2.setRequestHeader(&#x27;X-WP-Nonce&#x27;, nonce);
  137.                            xhr2.onload = function() {
  138.                                if (this.status &#x3E;= 200 &#x26;&#x26; this.status &#x3C; 400) {
  139.                                    console.log(&#x27;Sessions and Cookies Cleared&#x27;, this.responseText);
  140.                                    
  141.                                    // Reload the page after clearing cart and sessions/cookies
  142.                                    location.reload();
  143.                                } else {
  144.                                    console.error(&#x27;Error clearing sessions and cookies&#x27;, this);
  145.                                }
  146.                            };
  147.                            xhr2.onerror = function() {
  148.                                console.error(&#x27;Error clearing sessions and cookies&#x27;, this);
  149.                            };
  150.                            xhr2.send(&#x27;action=hnp_clear_sessions_cookies&#x26;nonce=&#x27; + nonce);
  151.                            
  152.                        } else {
  153.                            console.error(&#x27;Error clearing cart&#x27;, this);
  154.                        }
  155.                    };
  156.                    xhr.onerror = function() {
  157.                        console.error(&#x27;Error clearing cart&#x27;, this);
  158.                    };
  159.                    xhr.send(&#x27;action=hnp_clear_cart_session&#x26;nonce=&#x27; + nonce);
  160.                });
  161.            });
  162.        &#x22;;
  163.        wp_add_inline_script(&#x27;jquery&#x27;, $script);
  164.    }
  165. }
  166.  
  167.  
  168. add_action(&#x27;wp_enqueue_scripts&#x27;, &#x27;hnp_cwc_enqueue_scripts&#x27;);
  169.  
  170.  
  171.  
  172. // Register shortcode
  173. function hnp_cwc_button_shortcode() {
  174.    ob_start(); ?&#x3E;
  175.    &#x3C;button id=&#x22;clear-cart&#x22;&#x3E;Warenkorb leeren&#x3C;/button&#x3E;
  176.    &#x3C;?php
  177.    return ob_get_clean();
  178. }
  179. add_shortcode(&#x27;hnp_cwc_button&#x27;, &#x27;hnp_cwc_button_shortcode&#x27;);
  180.  
  181. // Hook to display the button on cart page
  182. function hnp_cwc_display_button() {
  183.    if (get_option(&#x27;hnp_cwc_hook_enable&#x27;, &#x27;no&#x27;) == &#x27;yes&#x27;) {
  184.        echo do_shortcode(&#x27;[hnp_cwc_button]&#x27;);
  185.    }
  186. }
  187. add_action(&#x27;woocommerce_cart_actions&#x27;, &#x27;hnp_cwc_display_button&#x27;);
  188.  
  189. // AJAX handler to clear cart
  190. function hnp_cwc_clear_cart() {
  191.    check_ajax_referer(&#x27;hnp_cwc_nonce&#x27;, &#x27;nonce&#x27;);
  192.  
  193.    try {
  194.        WC()-&#x3E;cart-&#x3E;empty_cart();
  195.        echo &#x27;Cart Cleared&#x27;;
  196.    } catch (Exception $e) {
  197.        echo &#x27;Error clearing cart: &#x27; . $e-&#x3E;getMessage();
  198.    }
  199.    die();
  200. }
  201.  
  202. add_action(&#x27;wp_ajax_hnp_clear_cart_session&#x27;, &#x27;hnp_cwc_clear_cart&#x27;);
  203. add_action(&#x27;wp_ajax_nopriv_hnp_clear_cart_session&#x27;, &#x27;hnp_cwc_clear_cart&#x27;);
  204.  
  205. </pre>
  206. <pre>
  207.  
  208. // AJAX handler to clear sessions and cookies
  209. function hnp_cwc_clear_sessions_cookies() {
  210.    check_ajax_referer(&#x27;hnp_cwc_nonce&#x27;, &#x27;nonce&#x27;);
  211.  
  212.    try {
  213.        // Reset WooCommerce session
  214.        WC()-&#x3E;session-&#x3E;set_customer_session_cookie(false);
  215.        WC()-&#x3E;session-&#x3E;set_session_cookie(false);
  216.        WC()-&#x3E;session-&#x3E;reset_session();
  217.  
  218.        // Unset all cookies
  219.        foreach ($_COOKIE as $cookie_key =&#x3E; $cookie_value) {
  220.            unset($_COOKIE[$cookie_key]);
  221.            setcookie($cookie_key, &#x27;&#x27;, time() - 3600, &#x27;/&#x27;, $_SERVER[&#x27;HTTP_HOST&#x27;]);
  222.            setcookie($cookie_key, &#x27;&#x27;, time() - 3600, &#x27;/&#x27;, &#x27;.&#x27; . $_SERVER[&#x27;HTTP_HOST&#x27;]);
  223.        }
  224.  
  225.        echo &#x27;Sessions and Cookies Cleared&#x27;;
  226.    } catch (Exception $e) {
  227.        echo &#x27;Error clearing sessions and cookies: &#x27; . $e-&#x3E;getMessage();
  228.    }
  229.    die();
  230. }
  231.  
  232.  
  233. add_action(&#x27;wp_ajax_hnp_clear_sessions_cookies&#x27;, &#x27;hnp_cwc_clear_sessions_cookies&#x27;);
  234. add_action(&#x27;wp_ajax_nopriv_hnp_clear_sessions_cookies&#x27;, &#x27;hnp_cwc_clear_sessions_cookies&#x27;);
  235.  
  236.  
  237. // Admin settings
  238. function hnp_cwc_admin_menu() {
  239.    add_menu_page(
  240.        &#x27;HNP Clear WooCommerce Cart Settings&#x27;,
  241.        &#x27;HNP Clear WooCommerce Cart&#x27;,          
  242.        &#x27;manage_options&#x27;,                  
  243.        &#x27;hnp_cwc_settings&#x27;,                
  244.        &#x27;hnp_cwc_settings_page&#x27;,            
  245. &#x9;&#x9; plugin_dir_url(__FILE__) . &#x27;img/hnp-favi.png&#x27;                              
  246.    );
  247. }
  248. add_action(&#x27;admin_menu&#x27;, &#x27;hnp_cwc_admin_menu&#x27;);
  249.  
  250. function hnp_cwc_settings_page() {
  251. &#x9;if (!current_user_can(&#x27;manage_options&#x27;)) {
  252.        return;
  253.    }
  254.    if ($_SERVER[&#x27;REQUEST_METHOD&#x27;] === &#x27;POST&#x27; &#x26;&#x26; check_admin_referer(&#x27;hnp_cwc_nonce&#x27;, &#x27;hnp_cwc_nonce_field&#x27;)) {
  255.        if (isset($_POST[&#x27;hnp_cwc_enable&#x27;])) {
  256.            update_option(&#x27;hnp_cwc_enable&#x27;, $_POST[&#x27;hnp_cwc_enable&#x27;]);
  257.        } else {
  258.            update_option(&#x27;hnp_cwc_enable&#x27;, &#x27;no&#x27;);
  259.        }
  260.  
  261.        if (isset($_POST[&#x27;hnp_cwc_hook_enable&#x27;])) {
  262.            update_option(&#x27;hnp_cwc_hook_enable&#x27;, $_POST[&#x27;hnp_cwc_hook_enable&#x27;]);
  263.        } else {
  264.            update_option(&#x27;hnp_cwc_hook_enable&#x27;, &#x27;no&#x27;);
  265.        }
  266.    }
  267.  
  268.    $enabled = get_option(&#x27;hnp_cwc_enable&#x27;, &#x27;no&#x27;);
  269.    $hook_enabled = get_option(&#x27;hnp_cwc_hook_enable&#x27;, &#x27;no&#x27;);
  270.    $nonce = wp_create_nonce(&#x27;hnp_cwc_nonce&#x27;);
  271.    ?&#x3E;
  272.    &#x3C;div class=&#x22;wrap&#x22;&#x3E;
  273.        &#x3C;h2&#x3E;HNP Clear WooCommerce Cart Settings&#x3C;/h2&#x3E;
  274.        &#x3C;form method=&#x22;post&#x22; action=&#x22;&#x22;&#x3E;
  275.            &#x3C;?php wp_nonce_field(&#x27;hnp_cwc_nonce&#x27;, &#x27;hnp_cwc_nonce_field&#x27;); ?&#x3E;
  276.            &#x3C;table class=&#x22;form-table&#x22;&#x3E;
  277.                &#x3C;tr&#x3E;
  278.                    &#x3C;th scope=&#x22;row&#x22;&#x3E;Allgemeine Funktion aktivieren&#x3C;/th&#x3E;
  279.                    &#x3C;td&#x3E;
  280.                        &#x3C;input type=&#x22;checkbox&#x22; name=&#x22;hnp_cwc_enable&#x22; value=&#x22;yes&#x22; &#x3C;?php checked(&#x27;yes&#x27;, $enabled); ?&#x3E; /&#x3E;
  281.                    &#x3C;/td&#x3E;
  282.                &#x3C;/tr&#x3E;
  283.                &#x3C;tr&#x3E;
  284.                    &#x3C;th scope=&#x22;row&#x22;&#x3E;Hook f&#xFC;r Warenkorb aktivieren&#x3C;/th&#x3E;
  285.                    &#x3C;td&#x3E;
  286.                        &#x3C;input type=&#x22;checkbox&#x22; name=&#x22;hnp_cwc_hook_enable&#x22; value=&#x22;yes&#x22; &#x3C;?php checked(&#x27;yes&#x27;, $hook_enabled); ?&#x3E; /&#x3E;
  287.                    &#x3C;/td&#x3E;
  288.                &#x3C;/tr&#x3E;
  289. &#x9;&#x9;&#x9;&#x9;&#x3C;tr&#x3E;Shortcode um den Button manuell einzubinden: [hnp_cwc_button]&#x3C;/tr&#x3E;
  290.            &#x3C;/table&#x3E;
  291.            &#x3C;?php submit_button(); ?&#x3E;
  292.        &#x3C;/form&#x3E;
  293.    &#x3C;/div&#x3E;
  294.    &#x3C;?php
  295. }
  296.  
  297. </pre>
  298. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/15/woocommerce-warenkorb-leeren-session-button/">WooCommerce Warenkorb Leeren &#038; Session Button</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  299. ]]></content:encoded>
  300. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/15/woocommerce-warenkorb-leeren-session-button/feed/</wfw:commentRss>
  301. <slash:comments>0</slash:comments>
  302. </item>
  303. <item>
  304. <title>HNP Empty Plugin &#8211; WordPress Demo Code</title>
  305. <link>https://homepage-nach-preis.de/2024/04/10/hnp-empty-plugin-wordpress-demo-code/</link>
  306. <comments>https://homepage-nach-preis.de/2024/04/10/hnp-empty-plugin-wordpress-demo-code/#respond</comments>
  307. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  308. <pubDate>Wed, 10 Apr 2024 13:54:30 +0000</pubDate>
  309. <category><![CDATA[Allgemein]]></category>
  310. <category><![CDATA[Wordpress Code]]></category>
  311. <category><![CDATA[Beispiel]]></category>
  312. <category><![CDATA[Code]]></category>
  313. <category><![CDATA[Demo]]></category>
  314. <category><![CDATA[Empty]]></category>
  315. <category><![CDATA[Leeres]]></category>
  316. <category><![CDATA[plugin]]></category>
  317. <category><![CDATA[wordpress]]></category>
  318. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8186</guid>
  319.  
  320. <description><![CDATA[<p>Das HNP Empty Plugin ist ein einfaches Demo-Plugin für WordPress, das entwickelt wurde, um grundlegende Funktionen eines Plugins zu demonstrieren. Es zeigt, wie man Styles und Skripte sowohl im Frontend als auch im Backend von WordPress einbindet. Außerdem bietet es eine Benutzeroberfläche zur Verwaltung von Plugin-Optionen über das WordPress-Dashboard. Der Plugin-Demo Code besitzt alle wichtigen Sicherheitsoptionen und Code-Qualitätsanforderungen, damit ein Plugin im offiziellen WordPress Verzeichnis aufgenommen wird. Zudem Funktionen, welche im Jahr 2024 auf dem neuesten Stand sind. Somit eine gute Grundlage für WordPress-Plugin-Entwickler. Geteste Kompatibilität: WordPress 6.5.2 und PHP 8.3. Das Plugin wird aber auch mit neueren und älteren PHP und WordPress Versionen kompatibel sein. Features: Frontend und Backend Styling: Das Plugin fügt sowohl dem Frontend als auch dem Backend von WordPress benutzerdefinierte CSS- und JavaScript-Dateien hinzu, um das Erscheinungsbild anzupassen. Plugin-Optionen: Es bietet eine einfache Möglichkeit, Plugin-Optionen über das WordPress-Dashboard zu konfigurieren, einschließlich Textfelder, Zahlenfelder, Farbwähler, Dropdown-Listen und Checkboxen. Shortcode: Das Plugin stellt einen Shortcode bereit, mit dem Benutzer die konfigurierten Optionen auf beliebigen Seiten oder Beiträgen anzeigen können. Sicherheitsmaßnahmen: Das Plugin implementiert Sicherheitsmaßnahmen wie Nonce-Überprüfung, um unerwünschte Zugriffe auf die Plugin-Einstellungen zu verhindern. &#160; Plugin-Download: [sdm_download id=&#8221;8187&#8243; fancy=&#8221;0&#8243;] Github: https://github.com/HNP-Christopher-Rohde/hnp_empty_wordpress_plugin Quellcode: &#60;?php /* Plugin Name: HNP Empty....</p>
  321. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/10/hnp-empty-plugin-wordpress-demo-code/">HNP Empty Plugin &#8211; WordPress Demo Code</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  322. ]]></description>
  323. <content:encoded><![CDATA[<p>Das HNP Empty Plugin ist ein einfaches Demo-Plugin für WordPress, das entwickelt wurde, um grundlegende Funktionen eines Plugins zu demonstrieren. Es zeigt, wie man Styles und Skripte sowohl im Frontend als auch im Backend von WordPress einbindet. Außerdem bietet es eine Benutzeroberfläche zur Verwaltung von Plugin-Optionen über das WordPress-Dashboard. Der Plugin-Demo Code besitzt alle wichtigen Sicherheitsoptionen und Code-Qualitätsanforderungen, damit ein Plugin im offiziellen WordPress Verzeichnis aufgenommen wird. Zudem Funktionen, welche im Jahr 2024 auf dem neuesten Stand sind. Somit eine gute Grundlage für WordPress-Plugin-Entwickler. Geteste Kompatibilität: WordPress 6.5.2 und PHP 8.3. Das Plugin wird aber auch mit neueren und älteren PHP und WordPress Versionen kompatibel sein. </p>
  324. <p><strong>Features:</strong></p>
  325. <ul>
  326. <li><strong>Frontend und Backend Styling:</strong> Das Plugin fügt sowohl dem Frontend als auch dem Backend von WordPress benutzerdefinierte CSS- und JavaScript-Dateien hinzu, um das Erscheinungsbild anzupassen.</li>
  327. <li><strong>Plugin-Optionen:</strong> Es bietet eine einfache Möglichkeit, Plugin-Optionen über das WordPress-Dashboard zu konfigurieren, einschließlich Textfelder, Zahlenfelder, Farbwähler, Dropdown-Listen und Checkboxen.</li>
  328. <li><strong>Shortcode:</strong> Das Plugin stellt einen Shortcode bereit, mit dem Benutzer die konfigurierten Optionen auf beliebigen Seiten oder Beiträgen anzeigen können.</li>
  329. <li><strong>Sicherheitsmaßnahmen:</strong> Das Plugin implementiert Sicherheitsmaßnahmen wie Nonce-Überprüfung, um unerwünschte Zugriffe auf die Plugin-Einstellungen zu verhindern.</li>
  330. </ul>
  331. <p>&nbsp;</p>
  332. <p><strong>Plugin-Download:</strong> [sdm_download id=&#8221;8187&#8243; fancy=&#8221;0&#8243;]<br />
  333. <strong>Github:</strong> <a href="https://github.com/HNP-Christopher-Rohde/hnp_empty_wordpress_plugin" target="_blank" rel="nofollow noopener">https://github.com/HNP-Christopher-Rohde/hnp_empty_wordpress_plugin</a><br />
  334. <strong>Quellcode:</strong></p>
  335. <pre>&lt;?php
  336. /*
  337.  Plugin Name: HNP Empty Plugin
  338.  Description: Creates a Demo Plugin in WordPress
  339.  Version: 2.0
  340.  Author: HNP C.R.
  341.  Author URI: https://homepage-nach-preis.de/
  342.  License: GPLv3
  343.  License URI: https://www.gnu.org/licenses/gpl-3.0.html
  344. */
  345.  
  346. // Security check to prevent direct access to the plugin file
  347. defined('ABSPATH') or die('No script kiddies please!');
  348.  
  349. // Function to enqueue the Frontend CSS and JS
  350. function hnp_empty_plugin_frontend_scripts() {
  351.    // Define a version number
  352.    $version = '2.0';
  353.  
  354.    // Check if CSS is not already enqueued
  355.    if (!wp_style_is('hnp_empty_plugin_frontend-css')) {
  356.        // Enqueue CSS with the defined version
  357.        wp_enqueue_style('hnp_empty_plugin_frontend-css', plugin_dir_url(__FILE__) . '/frontend/css/hnp_empty_plugin_frontend.css', array(), $version);
  358.    }
  359.  
  360.    // Check if JavaScript is not already enqueued
  361.    if (!wp_script_is('hnp_empty_plugin_frontend-js')) {
  362.        // Enqueue JavaScript with the defined version
  363.        wp_enqueue_script('hnp_empty_plugin_frontend-js', plugin_dir_url(__FILE__) . '/frontend/js/hnp_empty_plugin_frontend.js', array(), $version, true);
  364.    }
  365. }
  366. add_action('wp_enqueue_scripts', 'hnp_empty_plugin_frontend_scripts');
  367.  
  368. // Function to enqueue Backend CSS and JS
  369. function hnp_empty_plugin_backend_scripts() {
  370.    // Define a version number
  371.    $version = '2.0';
  372.  
  373.    // Check if CSS is not already enqueued
  374.    if (!wp_style_is('hnp_empty_plugin_backend-css')) {
  375.        // Enqueue CSS with the defined version
  376.        wp_enqueue_style('hnp_empty_plugin_backend-css', plugin_dir_url(__FILE__) . '/backend/css/hnp_empty_plugin_backend.css', array(), $version);
  377.    }
  378.  
  379.    // Check if JavaScript is not already enqueued
  380.    if (!wp_script_is('hnp_empty_plugin_backend-js')) {
  381.        // Enqueue JavaScript with the defined version
  382.        wp_enqueue_script('hnp_empty_plugin_backend-js', plugin_dir_url(__FILE__) . '/backend/js/hnp_empty_plugin_backend.js', array(), $version, true);
  383.    }
  384. }
  385. add_action('admin_enqueue_scripts', 'hnp_empty_plugin_backend_scripts');
  386.  
  387. // Function for Test - with load Options and Fallback
  388. function hnp_empty_plugin_echo_func() {
  389.    // Get option values
  390.    $name = get_option('hnp_empty_plugin_name_field', 'Name');
  391.    $number = get_option('hnp_empty_plugin_number_field', '12');
  392.    $color = get_option('hnp_empty_plugin_color_field', '#ff0000');
  393.    $description = get_option('hnp_empty_plugin_description_field', 'Im a Desc Field');
  394.    $dropdown = get_option('hnp_empty_plugin_dropdown_field', 'option1');
  395.    $checkbox = get_option('hnp_empty_plugin_checkbox_field', 0);
  396.  
  397.    // Echo option values
  398.    echo '&lt;p&gt;Name Field: ' . esc_html($name) . '&lt;/p&gt;';
  399.    echo '&lt;p&gt;Number Field: ' . esc_html($number) . '&lt;/p&gt;';
  400.    echo '&lt;p&gt;Color Field: ' . esc_html($color) . '&lt;/p&gt;';
  401.    echo '&lt;p&gt;Description Field: ' . esc_html($description) . '&lt;/p&gt;';
  402.    echo '&lt;p&gt;Dropdown Field: ' . esc_html($dropdown) . '&lt;/p&gt;';
  403.    echo '&lt;p&gt;Checkbox Field: ' . ($checkbox ? 'Enabled' : 'Disabled') . '&lt;/p&gt;';
  404. }
  405. add_shortcode('hnp_empty_plugin_echo_func', 'hnp_empty_plugin_echo_func');
  406.  
  407.  
  408. // Function to add plugin options to the main menu
  409. function hnp_empty_plugin_add_plugin_options_page() {
  410.    // Check permission
  411.    if (current_user_can('manage_options')) {
  412.        add_menu_page(
  413.            'HNP Empty Plugin Settings',
  414.            'HNP Empty Plugin',
  415.            'manage_options',
  416.            'hnp-empty-plugin-settings',
  417.            'hnp_empty_plugin_render_plugin_options_page',
  418.            plugin_dir_url(__FILE__) . 'img/hnp-favi.png'
  419.        );
  420.    }
  421. }
  422. add_action('admin_menu', 'hnp_empty_plugin_add_plugin_options_page');
  423.  
  424.  
  425. // Function to render plugin options page
  426. function hnp_empty_plugin_render_plugin_options_page() {
  427.    ?&gt;
  428.    &lt;div class="wrap hnp-empty-plugin-settings"&gt;
  429.        &lt;h1&gt;HNP Empty Plugin Settings&lt;/h1&gt;
  430.        &lt;form method="post" action="options.php"&gt;
  431.            &lt;?php settings_fields('hnp_empty_plugin_settings_group'); ?&gt;
  432.            &lt;?php do_settings_sections('hnp-empty-plugin-settings'); ?&gt;
  433.            
  434.            &lt;?php
  435.                // Add nonce
  436.                wp_nonce_field('hnp_empty_plugin_settings_nonce', 'hnp_empty_plugin_settings_nonce');
  437.            ?&gt;
  438.            
  439.            &lt;?php submit_button(); ?&gt;
  440.        &lt;/form&gt;
  441.    &lt;/div&gt;
  442.    &lt;?php
  443. }
  444.  
  445. // Function to register plugin options
  446. function hnp_empty_plugin_register_plugin_options() {
  447.    // Name
  448.    add_settings_section(
  449.        'hnp_empty_plugin_name_section',
  450.        'Demo',
  451.        'hnp_empty_plugin_demo_section_callback',
  452.        'hnp-empty-plugin-settings'
  453.    );
  454.  
  455.    // Name
  456.    add_settings_field(
  457.        'hnp_empty_plugin_name_field',
  458.        'Name Field',
  459.        'hnp_empty_plugin_name_field_callback',
  460.        'hnp-empty-plugin-settings',
  461.        'hnp_empty_plugin_name_section'
  462.    );
  463.  
  464.    // Number
  465.    add_settings_field(
  466.        'hnp_empty_plugin_number_field',
  467.        'Number Field',
  468.        'hnp_empty_plugin_number_field_callback',
  469.        'hnp-empty-plugin-settings',
  470.        'hnp_empty_plugin_name_section'
  471.    );
  472.  
  473.    // Color
  474.    add_settings_field(
  475.        'hnp_empty_plugin_color_field',
  476.        'Color Field',
  477.        'hnp_empty_plugin_color_field_callback',
  478.        'hnp-empty-plugin-settings',
  479.        'hnp_empty_plugin_name_section'
  480.    );
  481.  
  482.    // Description
  483.    add_settings_field(
  484.        'hnp_empty_plugin_description_field',
  485.        'Description Field',
  486.        'hnp_empty_plugin_description_field_callback',
  487.        'hnp-empty-plugin-settings',
  488.        'hnp_empty_plugin_name_section'
  489.    );
  490.  
  491.    // Dropdown
  492.    add_settings_field(
  493.        'hnp_empty_plugin_dropdown_field',
  494.        'Dropdown Field',
  495.        'hnp_empty_plugin_dropdown_field_callback',
  496.        'hnp-empty-plugin-settings',
  497.        'hnp_empty_plugin_name_section'
  498.    );
  499.  
  500.    // Checkbox
  501.    add_settings_field(
  502.        'hnp_empty_plugin_checkbox_field',
  503.        'Checkbox Field',
  504.        'hnp_empty_plugin_checkbox_field_callback',
  505.        'hnp-empty-plugin-settings',
  506.        'hnp_empty_plugin_name_section'
  507.    );
  508. }
  509. add_action('admin_init', 'hnp_empty_plugin_register_plugin_options');
  510. </pre>
  511. <pre>
  512. // Callback function for demo section
  513. function hnp_empty_plugin_demo_section_callback() {
  514.    echo 'This a Demo Plugin. Frontend-Shortcode: &amp;#x5B;hnp_empty_plugin_echo_func]&lt;/p&gt;';
  515. }
  516.  
  517. // Callback function for name field
  518. function hnp_empty_plugin_name_field_callback() {
  519.    $value = get_option('hnp_empty_plugin_name_field', 'Name'); // Fallback value is 'Name'
  520.    echo '&lt;input type="text" name="hnp_empty_plugin_name_field" value="' . esc_attr($value) . '" /&gt;';
  521. }
  522.  
  523. // Callback functions for number fields
  524. function hnp_empty_plugin_number_field_callback() {
  525.    $value = get_option('hnp_empty_plugin_number_field', '12'); // Fallback value is '12'
  526.    echo '&lt;input type="number" name="hnp_empty_plugin_number_field" value="' . esc_attr($value) . '" /&gt;';
  527. }
  528.  
  529. // Callback function for Color Field
  530. function hnp_empty_plugin_color_field_callback() {
  531.    $value = get_option('hnp_empty_plugin_color_field', '#ff0000'); // Fallback value is red color
  532.    echo '&lt;input type="color" name="hnp_empty_plugin_color_field" value="' . esc_attr($value) . '" /&gt;';
  533. }
  534.  
  535. // Callback function for Description Field
  536. function hnp_empty_plugin_description_field_callback() {
  537.    $value = get_option('hnp_empty_plugin_description_field', 'Im a Desc Field'); // Fallback value is 'Im a Desc Field'
  538.    echo '&lt;textarea name="hnp_empty_plugin_description_field"&gt;' . esc_html($value) . '&lt;/textarea&gt;';
  539. }
  540.  
  541. // Callback function for dropdown field
  542. function hnp_empty_plugin_dropdown_field_callback() {
  543.    $value = get_option('hnp_empty_plugin_dropdown_field', 'option1'); // Fallback value is 'option1'
  544.    ?&gt;
  545.    &lt;select name="hnp_empty_plugin_dropdown_field"&gt;
  546.        &lt;option value="option1" &lt;?php selected($value, 'option1'); ?&gt;&gt;Option 1&lt;/option&gt;
  547.        &lt;option value="option2" &lt;?php selected($value, 'option2'); ?&gt;&gt;Option 2&lt;/option&gt;
  548.        &lt;option value="option3" &lt;?php selected($value, 'option3'); ?&gt;&gt;Option 3&lt;/option&gt;
  549.    &lt;/select&gt;
  550.    &lt;?php
  551. }
  552.  
  553. // Callback function for checkbox field
  554. function hnp_empty_plugin_checkbox_field_callback() {
  555.    $value = get_option('hnp_empty_plugin_checkbox_field', 0); // Fallback value is 0 (not checked)
  556.    ?&gt;
  557.    &lt;label for="hnp_empty_plugin_checkbox_field"&gt;
  558.        &lt;input type="checkbox" name="hnp_empty_plugin_checkbox_field" id="hnp_empty_plugin_checkbox_field" value="1" &lt;?php checked($value, 1); ?&gt;&gt;
  559.        Enable Checkbox
  560.    &lt;/label&gt;
  561.    &lt;?php
  562. }
  563.  
  564. // Security measures: Nonce verification and save options
  565. function hnp_empty_plugin_register_security_options() {
  566.    // Check if the current page is our plugin options page
  567.    if (isset($_POST['option_page']) &amp;&amp; $_POST['option_page'] == 'hnp_empty_plugin_settings_group') {
  568.        // Check if the nonce is set and valid
  569.        if (!isset($_POST['hnp_empty_plugin_settings_nonce']) || !wp_verify_nonce($_POST['hnp_empty_plugin_settings_nonce'], 'hnp_empty_plugin_settings_nonce')) {
  570.            // Unauthorized request, do not save options
  571.            wp_die('Unauthorized request.'); // Output error message for unauthorized requests
  572.        }
  573.  
  574.        // Save options
  575.        update_option('hnp_empty_plugin_name_field', $_POST['hnp_empty_plugin_name_field']);
  576.        update_option('hnp_empty_plugin_number_field', sanitize_text_field($_POST['hnp_empty_plugin_number_field']));
  577.        update_option('hnp_empty_plugin_color_field', sanitize_text_field($_POST['hnp_empty_plugin_color_field']));
  578.        update_option('hnp_empty_plugin_description_field', sanitize_textarea_field($_POST['hnp_empty_plugin_description_field']));
  579.        update_option('hnp_empty_plugin_dropdown_field', sanitize_text_field($_POST['hnp_empty_plugin_dropdown_field']));
  580.        update_option('hnp_empty_plugin_checkbox_field', isset($_POST['hnp_empty_plugin_checkbox_field']) ? 1 : 0);
  581.    }
  582. }
  583. add_action('admin_init', 'hnp_empty_plugin_register_security_options');
  584.  
  585. // Register plugin options and security measures
  586. function hnp_empty_plugin_register_settings() {
  587.    // Register setting and sanitize callback
  588.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_name_field');
  589.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_number_field');
  590.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_color_field');
  591.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_description_field');
  592.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_dropdown_field');
  593.    register_setting('hnp_empty_plugin_settings_group', 'hnp_empty_plugin_checkbox_field');
  594. }
  595. add_action('admin_init', 'hnp_empty_plugin_register_settings');
  596.  
  597.  
  598. // Security measures: Nonce verification for options update
  599. function hnp_empty_plugin_validate_settings($input) {
  600.    return $input; // Simply return the input, no further validation here
  601. }
  602.  
  603. </pre>
  604. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/10/hnp-empty-plugin-wordpress-demo-code/">HNP Empty Plugin &#8211; WordPress Demo Code</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  605. ]]></content:encoded>
  606. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/10/hnp-empty-plugin-wordpress-demo-code/feed/</wfw:commentRss>
  607. <slash:comments>0</slash:comments>
  608. </item>
  609. <item>
  610. <title>HNP OpenStreetMap kostenloses Plugin</title>
  611. <link>https://homepage-nach-preis.de/2024/04/10/hnp-openstreetmap-kostenloses-plugin/</link>
  612. <comments>https://homepage-nach-preis.de/2024/04/10/hnp-openstreetmap-kostenloses-plugin/#respond</comments>
  613. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  614. <pubDate>Wed, 10 Apr 2024 10:19:20 +0000</pubDate>
  615. <category><![CDATA[Allgemein]]></category>
  616. <category><![CDATA[Homepage]]></category>
  617. <category><![CDATA[Wordpress Code]]></category>
  618. <category><![CDATA[Karte]]></category>
  619. <category><![CDATA[kostenlos]]></category>
  620. <category><![CDATA[Openmaps]]></category>
  621. <category><![CDATA[OpenStreetMap]]></category>
  622. <category><![CDATA[plugin]]></category>
  623. <category><![CDATA[Shortcode]]></category>
  624. <category><![CDATA[wordpress]]></category>
  625. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8176</guid>
  626.  
  627. <description><![CDATA[<p>Das &#8220;HNP OpenStreetMap Shortcode&#8221; Plugin ermöglicht es Benutzern, OpenStreetMap-Karten mit einem Pin direkt auf ihrer WordPress-Website einzubetten, indem sie einen Shortcode verwenden. Es bietet eine einfache Möglichkeit, einen Standort auf einer interaktiven Karte zu markieren. &#160; Hier sind die Hauptmerkmale des Plugins: Shortcode-Unterstützung: Benutzer können den bereitgestellten Shortcode verwenden, um eine Karte mit einem Pin an einem bestimmten Standort anzuzeigen. Anpassbare Optionen: Das Plugin bietet verschiedene anpassbare Optionen, darunter die Möglichkeit, die Adresse des Pins, den Namen des Markers, den Zoomlevel der Karte, den Kartenstil sowie die Höhe und Breite der Karte anzupassen. Integrierte Sicherheitsmaßnahmen: Das Plugin enthält Sicherheitsmaßnahmen wie Nonce-Überprüfung, um unautorisierte Zugriffe auf die Plugin-Optionen zu verhindern und die Datenintegrität zu gewährleisten. Einfache Konfiguration: Benutzer können die Plugin-Optionen über das WordPress-Adminpanel konfigurieren, um ihre Karten entsprechend ihren Anforderungen anzupassen. Das Plugin wurde von Homepage-nach-Preis.de entwickelt und steht unter der GNU General Public License Version 3 (GPLv3), was bedeutet, dass es kostenlos verwendet und modifiziert werden kann, solange die Lizenzbedingungen eingehalten werden. Download: [sdm_download id=&#8221;8174&#8243; fancy=&#8221;0&#8243;] Github: https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap Quellcode: &#x3C;?php /* Plugin Name: HNP OpenStreetMap Shortcode Description: Creates a frontend OpenStreetMap map with a pin using a shortcode Version: 1.0 Author: HNP - C.R. Author URI: https://homepage-nach-preis.de/ License: GPLv3....</p>
  628. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/10/hnp-openstreetmap-kostenloses-plugin/">HNP OpenStreetMap kostenloses Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  629. ]]></description>
  630. <content:encoded><![CDATA[<p>Das &#8220;HNP OpenStreetMap Shortcode&#8221; Plugin ermöglicht es Benutzern, OpenStreetMap-Karten mit einem Pin direkt auf ihrer WordPress-Website einzubetten, indem sie einen Shortcode verwenden. Es bietet eine einfache Möglichkeit, einen Standort auf einer interaktiven Karte zu markieren.</p>
  631. <p>&nbsp;</p>
  632. <p>Hier sind die Hauptmerkmale des Plugins:</p>
  633. <ol>
  634. <li><strong>Shortcode-Unterstützung:</strong> Benutzer können den bereitgestellten Shortcode verwenden, um eine Karte mit einem Pin an einem bestimmten Standort anzuzeigen.</li>
  635. <li><strong>Anpassbare Optionen:</strong> Das Plugin bietet verschiedene anpassbare Optionen, darunter die Möglichkeit, die Adresse des Pins, den Namen des Markers, den Zoomlevel der Karte, den Kartenstil sowie die Höhe und Breite der Karte anzupassen.</li>
  636. <li><strong>Integrierte Sicherheitsmaßnahmen:</strong> Das Plugin enthält Sicherheitsmaßnahmen wie Nonce-Überprüfung, um unautorisierte Zugriffe auf die Plugin-Optionen zu verhindern und die Datenintegrität zu gewährleisten.</li>
  637. <li><strong>Einfache Konfiguration:</strong> Benutzer können die Plugin-Optionen über das WordPress-Adminpanel konfigurieren, um ihre Karten entsprechend ihren Anforderungen anzupassen.</li>
  638. </ol>
  639. <p>Das Plugin wurde von Homepage-nach-Preis.de entwickelt und steht unter der GNU General Public License Version 3 (GPLv3), was bedeutet, dass es kostenlos verwendet und modifiziert werden kann, solange die Lizenzbedingungen eingehalten werden.</p>
  640. <p><strong>Download:</strong> [sdm_download id=&#8221;8174&#8243; fancy=&#8221;0&#8243;]</p>
  641. <p><strong>Github:</strong> <a href="https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap" target="_blank" rel="nofollow noopener">https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap</a><br />
  642. <strong>Quellcode:</strong></p>
  643. <pre>
  644. &#x3C;?php
  645. /*
  646.  Plugin Name: HNP OpenStreetMap Shortcode
  647.  Description: Creates a frontend OpenStreetMap map with a pin using a shortcode
  648.  Version: 1.0
  649.  Author: HNP - C.R.
  650.  Author URI: https://homepage-nach-preis.de/
  651.  License: GPLv3
  652.  License URI: https://www.gnu.org/licenses/gpl-3.0.html
  653. */
  654.  
  655. // Security check to prevent direct access to the plugin file
  656. defined(&#x27;ABSPATH&#x27;) or die(&#x27;No script kiddies please!&#x27;);
  657.  
  658. // Function to enqueue Leaflet library
  659. function hnp_openmaps_enqueue_leaflet_scripts() {
  660.    // Define a version number for your CSS file
  661.    $version = &#x27;1.9.4&#x27;;
  662.  
  663.    // Check if Leaflet CSS is not already enqueued
  664.    if (!wp_style_is(&#x27;leaflet-css&#x27;)) {
  665.        // Enqueue Leaflet CSS with the defined version
  666.        wp_enqueue_style(&#x27;leaflet-css&#x27;, plugin_dir_url(__FILE__) . &#x27;leaflet/leaflet.css&#x27;, array(), $version);
  667.    }
  668.  
  669.    // Check if Leaflet JavaScript is not already enqueued
  670.    if (!wp_script_is(&#x27;leaflet-js&#x27;)) {
  671.        // Enqueue Leaflet JavaScript with the defined version
  672.        wp_enqueue_script(&#x27;leaflet-js&#x27;, plugin_dir_url(__FILE__) . &#x27;leaflet/leaflet.js&#x27;, array(), $version, true);
  673.    }
  674. }
  675. add_action(&#x27;wp_enqueue_scripts&#x27;, &#x27;hnp_openmaps_enqueue_leaflet_scripts&#x27;);
  676.  
  677. // Function to display OpenStreetMap maps with a pin
  678. function hnp_openmaps_display_map_with_pin() {
  679.    // Load options and sanitize address
  680.    $raw_address = get_option(&#x27;hnp_openmaps_map_address&#x27;, &#x27;Hardenbergpl. 8, 10787 Berlin, Germany&#x27;);
  681.    $clean_address = sanitize_text_field($raw_address);
  682.  
  683.    // Load options and sanitize marker name
  684.    $marker_name = get_option(&#x27;hnp_openmaps_map_name&#x27;, &#x27;Berlin Zoological Garden&#x27;);
  685.  
  686.    // Load zoom level, map style, height, and width of the map
  687.    $zoom = get_option(&#x27;hnp_openmaps_map_zoom&#x27;, 12);
  688.    $style = get_option(&#x27;hnp_openmaps_map_style&#x27;, &#x27;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#x27;);
  689.    $height = get_option(&#x27;hnp_openmaps_map_height&#x27;, &#x27;400px&#x27;);
  690.    $width = get_option(&#x27;hnp_openmaps_map_width&#x27;, &#x27;100%&#x27;);
  691.  
  692.    // JavaScript variable for map initialization and adding markers
  693.    $map = &#x22;
  694.        &#x3C;script&#x3E;
  695.            document.addEventListener(&#x27;DOMContentLoaded&#x27;, function() {
  696.    &#x22;;
  697.  
  698.    // Split address into individual parts and encode
  699.    $address_parts = explode(&#x27;,&#x27;, $clean_address);
  700.    $encoded_address_parts = array_map(&#x27;urlencode&#x27;, $address_parts);
  701.    $encoded_address = implode(&#x27;,&#x27;, $encoded_address_parts);
  702.  
  703.    // Construct Nominatim URL
  704.    $nominatim_url = &#x22;https://nominatim.openstreetmap.org/search?format=json&#x26;q={$encoded_address}&#x22;;
  705.  
  706.    // Get geocoding data from Nominatim
  707.    $response = wp_remote_get($nominatim_url);
  708.  
  709.    // Check if the request was successful
  710.    if (!is_wp_error($response) &#x26;&#x26; wp_remote_retrieve_response_code($response) === 200) {
  711.        $data = json_decode(wp_remote_retrieve_body($response), true);
  712.  
  713.        // Check if geocoding results were obtained
  714.        if (!empty($data)) {
  715.            $latitude = $data[0][&#x27;lat&#x27;];
  716.            $longitude = $data[0][&#x27;lon&#x27;];
  717.  
  718.            // Initialize map with center at marker coordinates
  719.            $map .= &#x22;
  720.                var hnp_openmaps_map = L.map(&#x27;hnp_openmaps_map&#x27;).setView([$latitude, $longitude], $zoom);
  721.            &#x22;;
  722.  
  723.            // Add tiles to the map
  724.            $map .= &#x22;
  725.                L.tileLayer(&#x27;$style&#x27;, {
  726.                    attribution: &#x27;&#x26;copy; &#x3C;a href=\&#x22;https://www.openstreetmap.org/copyright\&#x22;&#x3E;OpenStreetMap&#x3C;/a&#x3E; contributors&#x27;
  727.                }).addTo(hnp_openmaps_map);
  728.            &#x22;;
  729.  
  730.            // Add marker to the map
  731.            $map .= &#x22;
  732.                L.marker([$latitude, $longitude]).addTo(hnp_openmaps_map).bindPopup(&#x27;&#x22; . esc_js($clean_address) . &#x22;&#x27;).bindTooltip(&#x27;&#x22; . esc_js($marker_name) . &#x22;&#x27;);
  733.                console.log(&#x27;Geocoding successful for address:&#x27;, &#x22; . wp_json_encode($clean_address) . &#x22;);
  734.            &#x22;;
  735.        } else {
  736.            // Error retrieving geocoding data
  737.            error_log(&#x22;Error retrieving geocoding data for address: $clean_address&#x22;);
  738.            $map .= &#x22;
  739.                console.log(&#x27;Error retrieving geocoding data for address:&#x27;, &#x22; . wp_json_encode($clean_address) . &#x22;);
  740.            &#x22;;
  741.        }
  742.    } else {
  743.        // Error retrieving geocoding data
  744.        error_log(&#x22;Error retrieving geocoding data for address: $clean_address&#x22;);
  745.        $map .= &#x22;
  746.            console.log(&#x27;Error retrieving geocoding data for address:&#x27;, &#x22; . wp_json_encode($clean_address) . &#x22;);
  747.        &#x22;;
  748.    }
  749.  
  750.    // Add JavaScript end
  751.    $map .= &#x22;
  752.            });
  753.        &#x3C;/script&#x3E;
  754.    &#x22;;
  755.  
  756.    // Return map div and JavaScript
  757.    return &#x27;&#x3C;div id=&#x22;hnp_openmaps_map&#x22; style=&#x22;height: &#x27; . esc_attr($height) . &#x27;; width: &#x27; . esc_attr($width) . &#x27;;&#x22;&#x3E;&#x3C;/div&#x3E;&#x27; . $map;
  758. }
  759.  
  760. // Register shortcode
  761. add_shortcode(&#x27;hnp_openmaps_display_map_with_pin&#x27;, &#x27;hnp_openmaps_display_map_with_pin&#x27;);
  762.  
  763. // Function to add plugin options to the main menu
  764. function hnp_openmaps_add_plugin_options_page() {
  765.    // Check permission
  766.    if (current_user_can(&#x27;manage_options&#x27;)) {
  767.        add_menu_page(
  768.            &#x27;HNP OpenStreetMap Settings&#x27;,
  769.            &#x27;HNP OpenStreetMap&#x27;,
  770.            &#x27;manage_options&#x27;,
  771.            &#x27;hnp-openmaps-osm-settings&#x27;,
  772.            &#x27;hnp_openmaps_render_plugin_options_page&#x27;,
  773.            plugin_dir_url(__FILE__) . &#x27;img/hnp-favi.png&#x27;
  774.        );
  775.    }
  776. }
  777. add_action(&#x27;admin_menu&#x27;, &#x27;hnp_openmaps_add_plugin_options_page&#x27;);
  778.  
  779. // Add settings link to plugin on the Plugins page
  780. function hnp_openmaps_add_settings_link($links) {
  781.    $settings_link = &#x27;&#x3C;a href=&#x22;admin.php?page=hnp-openmaps-osm-settings&#x22;&#x3E;&#x27; . __(&#x27;Settings&#x27;) . &#x27;&#x3C;/a&#x3E;&#x27;;
  782.    array_unshift($links, $settings_link); // Add the settings link at the beginning of the array
  783.    return $links;
  784. }
  785. add_filter(&#x27;plugin_action_links_&#x27; . plugin_basename(__FILE__), &#x27;hnp_openmaps_add_settings_link&#x27;);
  786.  
  787.  
  788. // Function to render plugin options page
  789. function hnp_openmaps_render_plugin_options_page() {
  790.    ?&#x3E;
  791.    &#x3C;div class=&#x22;wrap&#x22;&#x3E;
  792.        &#x3C;h1&#x3E;HNP OpenStreetMap Settings&#x3C;/h1&#x3E;
  793.        &#x3C;form method=&#x22;post&#x22; action=&#x22;options.php&#x22;&#x3E;
  794.            &#x3C;?php settings_fields(&#x27;hnp_openmaps_osm_settings_group&#x27;); ?&#x3E;
  795.            &#x3C;?php do_settings_sections(&#x27;hnp-openmaps-osm-settings&#x27;); ?&#x3E;
  796.            &#x3C;?php
  797.                // Add nonce
  798.                wp_nonce_field(&#x27;hnp_openmaps_osm_settings_nonce&#x27;, &#x27;hnp_openmaps_osm_settings_nonce&#x27;);
  799.            ?&#x3E;
  800.            &#x3C;?php submit_button(); ?&#x3E;
  801.        &#x3C;/form&#x3E;
  802.    &#x3C;/div&#x3E;
  803.    &#x3C;?php
  804. }
  805.  
  806. </pre>
  807. <pre>
  808.  
  809. // Function to register plugin options
  810. function hnp_openmaps_register_plugin_options() {
  811.    // Adresse
  812.    add_settings_section(
  813.        &#x27;hnp_openmaps_osm_address_section&#x27;,
  814.        &#x27;Address&#x27;,
  815.        &#x27;hnp_openmaps_osm_address_section_callback&#x27;,
  816.        &#x27;hnp-openmaps-osm-settings&#x27;
  817.    );
  818.    add_settings_field(
  819.        &#x27;hnp_openmaps_map_address&#x27;,
  820.        &#x27;Address&#x27;,
  821.        &#x27;hnp_openmaps_map_address_callback&#x27;,
  822.        &#x27;hnp-openmaps-osm-settings&#x27;,
  823.        &#x27;hnp_openmaps_osm_address_section&#x27;
  824.    );
  825.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_address&#x27;);
  826.  
  827.    // Name
  828.    add_settings_section(
  829.        &#x27;hnp_openmaps_osm_name_section&#x27;,
  830.        &#x27;Name&#x27;,
  831.        &#x27;hnp_openmaps_osm_name_section_callback&#x27;,
  832.        &#x27;hnp-openmaps-osm-settings&#x27;
  833.    );
  834.    add_settings_field(
  835.        &#x27;hnp_openmaps_map_name&#x27;,
  836.        &#x27;Name&#x27;,
  837.        &#x27;hnp_openmaps_map_name_callback&#x27;,
  838.        &#x27;hnp-openmaps-osm-settings&#x27;,
  839.        &#x27;hnp_openmaps_osm_name_section&#x27;
  840.    );
  841.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_name&#x27;);
  842.  
  843.    // Karten-Zoom
  844.    add_settings_section(
  845.        &#x27;hnp_openmaps_osm_zoom_section&#x27;,
  846.        &#x27;Map Zoom&#x27;,
  847.        &#x27;hnp_openmaps_osm_zoom_section_callback&#x27;,
  848.        &#x27;hnp-openmaps-osm-settings&#x27;
  849.    );
  850.    add_settings_field(
  851.        &#x27;hnp_openmaps_map_zoom&#x27;,
  852.        &#x27;Map Zoom&#x27;,
  853.        &#x27;hnp_openmaps_map_zoom_callback&#x27;,
  854.        &#x27;hnp-openmaps-osm-settings&#x27;,
  855.        &#x27;hnp_openmaps_osm_zoom_section&#x27;
  856.    );
  857.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_zoom&#x27;);
  858.  
  859.    // Kartenstil
  860.    add_settings_section(
  861.        &#x27;hnp_openmaps_osm_style_section&#x27;,
  862.        &#x27;Map Style&#x27;,
  863.        &#x27;hnp_openmaps_osm_style_section_callback&#x27;,
  864.        &#x27;hnp-openmaps-osm-settings&#x27;
  865.    );
  866.    add_settings_field(
  867.        &#x27;hnp_openmaps_map_style&#x27;,
  868.        &#x27;Map Style&#x27;,
  869.        &#x27;hnp_openmaps_map_style_callback&#x27;,
  870.        &#x27;hnp-openmaps-osm-settings&#x27;,
  871.        &#x27;hnp_openmaps_osm_style_section&#x27;
  872.    );
  873.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_style&#x27;);
  874.  
  875.    add_settings_section(
  876.        &#x27;hnp_openmaps_osm_height_section&#x27;,
  877.        &#x27;Map Height&#x27;,
  878.        &#x27;hnp_openmaps_osm_height_section_callback&#x27;,
  879.        &#x27;hnp-openmaps-osm-settings&#x27;
  880.    );
  881.    add_settings_field(
  882.        &#x27;hnp_openmaps_map_height&#x27;,
  883.        &#x27;Map Height&#x27;,
  884.        &#x27;hnp_openmaps_map_height_callback&#x27;,
  885.        &#x27;hnp-openmaps-osm-settings&#x27;,
  886.        &#x27;hnp_openmaps_osm_height_section&#x27;
  887.    );
  888.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_height&#x27;);
  889.  
  890.    add_settings_section(
  891.        &#x27;hnp_openmaps_osm_width_section&#x27;,
  892.        &#x27;Map Width&#x27;,
  893.        &#x27;hnp_openmaps_osm_width_section_callback&#x27;,
  894.        &#x27;hnp-openmaps-osm-settings&#x27;
  895.    );
  896.    add_settings_field(
  897.        &#x27;hnp_openmaps_map_width&#x27;,
  898.        &#x27;Map Width&#x27;,
  899.        &#x27;hnp_openmaps_map_width_callback&#x27;,
  900.        &#x27;hnp-openmaps-osm-settings&#x27;,
  901.        &#x27;hnp_openmaps_osm_width_section&#x27;
  902.    );
  903.    register_setting(&#x27;hnp_openmaps_osm_settings_group&#x27;, &#x27;hnp_openmaps_map_width&#x27;);
  904.  
  905.    add_settings_section(
  906.        &#x27;hnp_openmaps_shortcode_section&#x27;,
  907.        &#x27;Shortcode&#x27;,
  908.        &#x27;hnp_openmaps_shortcode_section_callback&#x27;,
  909.        &#x27;hnp-openmaps-osm-settings&#x27;
  910.    );
  911. }
  912.  
  913. </pre>
  914. <pre>
  915.  
  916. // Callback functions for each option
  917. function hnp_openmaps_osm_address_section_callback() {
  918.    echo &#x27;&#x3C;p&#x3E;Enter the address to be displayed on the map. &#x3C;br&#x3E;Format: Streetname + Housenumber, City Name + ZIP Code, Country &#x3C;br&#x3E;(Separate each part with a comma)&#x3C;/p&#x3E;&#x27;;
  919. }
  920. function hnp_openmaps_map_address_callback() {
  921.    $address = get_option(&#x27;hnp_openmaps_map_address&#x27;, &#x27;Hardenbergpl. 8, 10787 Berlin, Germany&#x27;);
  922.    echo &#x27;&#x3C;input type=&#x22;text&#x22; name=&#x22;hnp_openmaps_map_address&#x22; value=&#x22;&#x27; . esc_attr($address) . &#x27;&#x22; /&#x3E;&#x27;;
  923. }
  924.  
  925. function hnp_openmaps_osm_name_section_callback() {
  926.    echo &#x27;&#x3C;p&#x3E;Enter the name for the marker to be displayed on the map.&#x3C;/p&#x3E;&#x27;;
  927. }
  928. function hnp_openmaps_map_name_callback() {
  929.    $name = get_option(&#x27;hnp_openmaps_map_name&#x27;, &#x27;Berlin Zoological Garden&#x27;);
  930.    echo &#x27;&#x3C;input type=&#x22;text&#x22; name=&#x22;hnp_openmaps_map_name&#x22; value=&#x22;&#x27; . esc_attr($name) . &#x27;&#x22; /&#x3E;&#x27;;
  931. }
  932.  
  933. function hnp_openmaps_osm_zoom_section_callback() {
  934.    echo &#x27;&#x3C;p&#x3E;Set the zoom level of the map.&#x3C;/p&#x3E;&#x27;;
  935. }
  936. function hnp_openmaps_map_zoom_callback() {
  937.    $zoom = get_option(&#x27;hnp_openmaps_map_zoom&#x27;, 12);
  938.    echo &#x27;&#x3C;input type=&#x22;number&#x22; name=&#x22;hnp_openmaps_map_zoom&#x22; value=&#x22;&#x27; . esc_attr($zoom) . &#x27;&#x22; /&#x3E;&#x27;;
  939. }
  940. function hnp_openmaps_osm_style_section_callback() {
  941.    echo &#x27;&#x3C;p&#x3E;Select the map style.&#x3C;/p&#x3E;&#x27;;
  942. }
  943. function hnp_openmaps_map_style_callback() {
  944.    $style = get_option(&#x27;hnp_openmaps_map_style&#x27;, &#x27;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#x27;);
  945.    $styles = array(
  946.        &#x27;Standard (OpenStreetMap)&#x27; =&#x3E; &#x27;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#x27;,
  947.        &#x27;Hot&#x27; =&#x3E; &#x27;https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png&#x27;,
  948.        &#x27;Cycle&#x27; =&#x3E; &#x27;https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png&#x27;,
  949.        &#x27;Transport&#x27; =&#x3E; &#x27;https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png&#x27;
  950.        // More styles can be added here
  951.    );
  952.    echo &#x27;&#x3C;select name=&#x22;hnp_openmaps_map_style&#x22;&#x3E;&#x27;;
  953.    foreach ($styles as $label =&#x3E; $url) {
  954.        echo &#x27;&#x3C;option value=&#x22;&#x27; . esc_attr($url) . &#x27;&#x22; &#x27; . selected($style, $url, false) . &#x27;&#x3E;&#x27; . esc_html($label) . &#x27;&#x3C;/option&#x3E;&#x27;;
  955.    }
  956.    echo &#x27;&#x3C;/select&#x3E;&#x27;;
  957. }
  958.  
  959. function hnp_openmaps_osm_height_section_callback() {
  960.    echo &#x27;&#x3C;p&#x3E;Set the height of the map.&#x3C;/p&#x3E;&#x27;;
  961. }
  962. function hnp_openmaps_map_height_callback() {
  963.    $height = get_option(&#x27;hnp_openmaps_map_height&#x27;, &#x27;400px&#x27;);
  964.    echo &#x27;&#x3C;input type=&#x22;text&#x22; name=&#x22;hnp_openmaps_map_height&#x22; value=&#x22;&#x27; . esc_attr($height) . &#x27;&#x22; /&#x3E;&#x27;;
  965. }
  966. function hnp_openmaps_osm_width_section_callback() {
  967.    echo &#x27;&#x3C;p&#x3E;Set the width of the map.&#x3C;/p&#x3E;&#x27;;
  968. }
  969. function hnp_openmaps_map_width_callback() {
  970.    $width = get_option(&#x27;hnp_openmaps_map_width&#x27;, &#x27;100%&#x27;);
  971.    echo &#x27;&#x3C;input type=&#x22;text&#x22; name=&#x22;hnp_openmaps_map_width&#x22; value=&#x22;&#x27; . esc_attr($width) . &#x27;&#x22; /&#x3E;&#x27;;
  972. }
  973. function hnp_openmaps_shortcode_section_callback() {
  974.    echo &#x27;&#x3C;p&#x3E;Shortcode: &#x26;#x5B;hnp_openmaps_display_map_with_pin]&#x3C;/p&#x3E;&#x27;;
  975. }
  976.  
  977. // Register plugin options and security measures
  978. add_action(&#x27;admin_init&#x27;, &#x27;hnp_openmaps_register_plugin_options&#x27;);
  979.  
  980. // Security measures: Nonce verification for options update
  981. function hnp_openmaps_validate_settings($input) {
  982.    return $input; // Simply return the input, no further validation here
  983. }
  984.  
  985. // Security measures: Nonce verification and save options
  986. function hnp_openmaps_register_security_options() {
  987.    // Check if the current page is our plugin options page
  988.    if (isset($_POST[&#x27;option_page&#x27;]) &#x26;&#x26; $_POST[&#x27;option_page&#x27;] == &#x27;hnp_openmaps_osm_settings_group&#x27;) {
  989.        // Check if the nonce is set and valid
  990.        if (!isset($_POST[&#x27;hnp_openmaps_osm_settings_nonce&#x27;]) || !wp_verify_nonce($_POST[&#x27;hnp_openmaps_osm_settings_nonce&#x27;], &#x27;hnp_openmaps_osm_settings_nonce&#x27;)) {
  991.            // Unauthorized request, do not save options
  992.            wp_die(&#x27;Unauthorized request.&#x27;); // Output error message for unauthorized requests
  993.        }
  994.  
  995.        // Save options
  996.        update_option(&#x27;hnp_openmaps_map_address&#x27;, $_POST[&#x27;hnp_openmaps_map_address&#x27;]);
  997.        update_option(&#x27;hnp_openmaps_map_name&#x27;, $_POST[&#x27;hnp_openmaps_map_name&#x27;]);
  998.        update_option(&#x27;hnp_openmaps_map_zoom&#x27;, $_POST[&#x27;hnp_openmaps_map_zoom&#x27;]);
  999.        update_option(&#x27;hnp_openmaps_map_style&#x27;, $_POST[&#x27;hnp_openmaps_map_style&#x27;]);
  1000.        update_option(&#x27;hnp_openmaps_map_height&#x27;, $_POST[&#x27;hnp_openmaps_map_height&#x27;]);
  1001.        update_option(&#x27;hnp_openmaps_map_width&#x27;, $_POST[&#x27;hnp_openmaps_map_width&#x27;]);
  1002.    }
  1003. }
  1004. add_action(&#x27;admin_init&#x27;, &#x27;hnp_openmaps_register_security_options&#x27;);
  1005.  
  1006. </pre>
  1007. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/10/hnp-openstreetmap-kostenloses-plugin/">HNP OpenStreetMap kostenloses Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1008. ]]></content:encoded>
  1009. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/10/hnp-openstreetmap-kostenloses-plugin/feed/</wfw:commentRss>
  1010. <slash:comments>0</slash:comments>
  1011. </item>
  1012. <item>
  1013. <title>Dynamische Templates in WordPress erzeugen &#038; einbinden</title>
  1014. <link>https://homepage-nach-preis.de/2024/04/07/dynamische-templates-in-wordpress-erzeugen-einbinden/</link>
  1015. <comments>https://homepage-nach-preis.de/2024/04/07/dynamische-templates-in-wordpress-erzeugen-einbinden/#respond</comments>
  1016. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1017. <pubDate>Sun, 07 Apr 2024 16:20:29 +0000</pubDate>
  1018. <category><![CDATA[Webdesign]]></category>
  1019. <category><![CDATA[Wordpress Code]]></category>
  1020. <category><![CDATA[Dynamische]]></category>
  1021. <category><![CDATA[einbinden]]></category>
  1022. <category><![CDATA[Funktion]]></category>
  1023. <category><![CDATA[Templates]]></category>
  1024. <category><![CDATA[wordpress]]></category>
  1025. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8161</guid>
  1026.  
  1027. <description><![CDATA[<p>Das &#8220;HNP Dyn Template&#8221; Plugin ermöglicht es Benutzern, zwischen verschiedenen Vorlagen für eine bestimmte Seite oder einen Beitrag zu wählen. Durch Hinzufügen von Shortcodes können Benutzer auf einfache Weise zwischen verschiedenen Templates hin- und herwechseln, ohne den Code manuell bearbeiten zu müssen. Code-Beschreibung: Shortcodes: Das Plugin fügt zwei Shortcodes hinzu: hnp_template_switcher und hnp_template_switcher_buttons. hnp_template_switcher: Dieser Shortcode rendert den Bereich, in dem das ausgewählte Template dynamisch geladen wird. Es verwendet eine PHP-Include-Anweisung, um die entsprechende Template-Datei zu laden. hnp_template_switcher_buttons: Dieser Shortcode rendert die Schaltflächen, mit denen Benutzer zwischen den verschiedenen Templates wählen können. Es gibt zwei Schaltflächen, um Template 1 und Template 2 zu laden. JavaScript: Das Plugin verwendet JavaScript, um auf Benutzerinteraktionen zu reagieren und die Templates dynamisch zu laden. Es bindet Klickereignisse an die Schaltflächen, um die entsprechenden Templates zu laden. Dazu wird eine XMLHttpRequest verwendet, um die Template-Dateien abzurufen und sie dann in den Container zu rendern. Vorteile und Nutzen: Benutzerfreundlichkeit: Das Plugin macht es einfach, zwischen verschiedenen Vorlagen zu wechseln, ohne dass Benutzer den Code bearbeiten müssen. Durch die Verwendung von Shortcodes können Benutzer die Schaltflächen und den Template-Bereich einfach in ihre Seiten und Beiträge einfügen. Flexibilität: Benutzer können verschiedene Templates erstellen und sie je nach Bedarf....</p>
  1028. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/07/dynamische-templates-in-wordpress-erzeugen-einbinden/">Dynamische Templates in WordPress erzeugen &#038; einbinden</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1029. ]]></description>
  1030. <content:encoded><![CDATA[<p>Das &#8220;HNP Dyn Template&#8221; Plugin ermöglicht es Benutzern, zwischen verschiedenen Vorlagen für eine bestimmte Seite oder einen Beitrag zu wählen. Durch Hinzufügen von Shortcodes können Benutzer auf einfache Weise zwischen verschiedenen Templates hin- und herwechseln, ohne den Code manuell bearbeiten zu müssen.</p>
  1031. <p><strong>Code-Beschreibung:</strong></p>
  1032. <p>Shortcodes: Das Plugin fügt zwei Shortcodes hinzu: hnp_template_switcher und hnp_template_switcher_buttons.</p>
  1033. <p>hnp_template_switcher: Dieser Shortcode rendert den Bereich, in dem das ausgewählte Template dynamisch geladen wird. Es verwendet eine PHP-Include-Anweisung, um die entsprechende Template-Datei zu laden.</p>
  1034. <p>hnp_template_switcher_buttons: Dieser Shortcode rendert die Schaltflächen, mit denen Benutzer zwischen den verschiedenen Templates wählen können. Es gibt zwei Schaltflächen, um Template 1 und Template 2 zu laden.</p>
  1035. <p>JavaScript: Das Plugin verwendet JavaScript, um auf Benutzerinteraktionen zu reagieren und die Templates dynamisch zu laden. Es bindet Klickereignisse an die Schaltflächen, um die entsprechenden Templates zu laden. Dazu wird eine XMLHttpRequest verwendet, um die Template-Dateien abzurufen und sie dann in den Container zu rendern.</p>
  1036. <p><strong>Vorteile und Nutzen:</strong></p>
  1037. <p>Benutzerfreundlichkeit: Das Plugin macht es einfach, zwischen verschiedenen Vorlagen zu wechseln, ohne dass Benutzer den Code bearbeiten müssen. Durch die Verwendung von Shortcodes können Benutzer die Schaltflächen und den Template-Bereich einfach in ihre Seiten und Beiträge einfügen.</p>
  1038. <p>Flexibilität: Benutzer können verschiedene Templates erstellen und sie je nach Bedarf anpassen. Dies ermöglicht es, verschiedene Layouts und Designs für verschiedene Zwecke zu verwenden.</p>
  1039. <p>Zeitersparnis: Durch die Verwendung des Plugins können Benutzer Zeit sparen, da sie nicht jedes Mal den Code ändern müssen, wenn sie ein anderes Template verwenden möchten. Stattdessen können sie einfach die entsprechende Schaltfläche anklicken.</p>
  1040. <p><strong>Umfang:</strong></p>
  1041. <p>Das Plugin umfasst zwei Hauptkomponenten: die Shortcodes für den Template-Switcher und die zugehörige JavaScript-Funktionalität. Die Shortcodes sind einfach zu verwenden und erfordern nur minimale Konfiguration, während das JavaScript für die dynamische Laden der Templates sorgt.</p>
  1042. <p><strong>Lizenz:</strong></p>
  1043. <p>Das &#8220;HNP Dyn Template&#8221; Plugin wird unter der GNU General Public License (GPLv3) vertrieben, was bedeutet, dass es frei verwendet, modifiziert und weitergegeben werden kann, solange die Lizenzbedingungen eingehalten werden.</p>
  1044. <p><strong>Download:</strong><br />
  1045. WordPress Plugin mit Ajax: [sdm_download id=&#8221;8168&#8243; fancy=&#8221;0&#8243;]<br />
  1046. WordPress Plugin ohne Ajax: [sdm_download id=&#8221;8171&#8243; fancy=&#8221;0&#8243;]</p>
  1047. <p><strong>WordPress Plugin Code ohne Ajax (schnellere Ladezeiten):</strong></p>
  1048. <pre>&lt;?php
  1049. /*
  1050. * Plugin Name: HNP Dyn Template
  1051. * Plugin URI: https://homepage-nach-preis.de/
  1052. * Description: Erstellt 2 Button welche bei Betätigung die Template-Datei auswechseln. Shortcodes: hnp_template_switcher_buttons und hnp_template_switcher
  1053. * Version: 1.1
  1054. * Author: HNP
  1055. * Author URI: https://homepage-nach-preis.de/
  1056. * License: GPLv3
  1057. */
  1058.  
  1059. // Shortcode für den Template-Switcher hinzufügen
  1060. add_shortcode('hnp_template_switcher', 'hnp_custom_template_switcher_shortcode');
  1061.  
  1062. // Funktion zum Rendern des Shortcodes
  1063. function hnp_custom_template_switcher_shortcode() {
  1064.    ob_start();
  1065.    ?&gt;
  1066.    &lt;div id="hnp-template-container"&gt;
  1067.        &lt;!-- Hier wird das Template dynamisch geladen --&gt;
  1068.        &lt;?php include_once(plugin_dir_path(__FILE__) . '/templates/hnp_template_1.php'); ?&gt;
  1069.    &lt;/div&gt;
  1070.    &lt;?php
  1071.    return ob_get_clean();
  1072. }
  1073.  
  1074. // Shortcode für die Schaltflächen zum Wechseln der Templates hinzufügen
  1075. add_shortcode('hnp_template_switcher_buttons', 'hnp_custom_template_switcher_buttons_shortcode');
  1076.  
  1077. // Funktion zum Rendern des Shortcodes für die Schaltflächen
  1078. function hnp_custom_template_switcher_buttons_shortcode() {
  1079.    ob_start();
  1080.    ?&gt;
  1081.    &lt;button id="hnp-template1-btn"&gt;Template 1 laden&lt;/button&gt;
  1082.    &lt;button id="hnp-template2-btn"&gt;Template 2 laden&lt;/button&gt;
  1083.    &lt;?php
  1084.    return ob_get_clean();
  1085. }
  1086.  
  1087. // JavaScript zum Schalten der Templates hinzufügen
  1088. add_action('wp_footer', 'hnp_custom_template_switcher_js');
  1089.  
  1090. function hnp_custom_template_switcher_js() {
  1091.    ?&gt;
  1092.    &lt;script&gt;
  1093.    document.addEventListener('DOMContentLoaded', function() {
  1094.        document.getElementById('hnp-template1-btn').addEventListener('click', function() {
  1095.            loadTemplate('hnp_template_1.php');
  1096.        });
  1097.        document.getElementById('hnp-template2-btn').addEventListener('click', function() {
  1098.            loadTemplate('hnp_template_2.php');
  1099.        });
  1100.    });
  1101.  
  1102. function loadTemplate(templateUrl) {
  1103. var xhr = new XMLHttpRequest();
  1104. xhr.open('GET', '&lt;?php echo plugins_url("templates/", __FILE__); ?&gt;' + templateUrl, true);
  1105. xhr.onreadystatechange = function() {
  1106. if (xhr.readyState === 4 &amp;&amp; xhr.status === 200) {
  1107. document.getElementById('hnp-template-container').innerHTML = xhr.responseText;
  1108. }
  1109. };
  1110. xhr.send();
  1111. }
  1112.  
  1113.    &lt;/script&gt;
  1114.    &lt;?php
  1115. }
  1116.  
  1117. </pre>
  1118. <p><strong>Template 1 Datei:</strong></p>
  1119. <pre>&lt;?php
  1120. /*
  1121. Template Name: Template 1
  1122. */
  1123. ?&gt;
  1124.  
  1125. &lt;div class="hnp-template-content"&gt;
  1126.    &lt;h2&gt;Template 1&lt;/h2&gt;
  1127.    &lt;p&gt;Dies ist der Inhalt von Template 1.&lt;/p&gt;
  1128. &lt;/div&gt;
  1129.  
  1130. </pre>
  1131. <p><strong>Template 2 Datei:</strong></p>
  1132. <pre>&lt;?php
  1133. /*
  1134. Template Name: Template 2
  1135. */
  1136. ?&gt;
  1137.  
  1138. &lt;div class="hnp-template-content"&gt;
  1139.    &lt;h2&gt;Template 2&lt;/h2&gt;
  1140.    &lt;p&gt;Dies ist der Inhalt von Template 2.&lt;/p&gt;
  1141. &lt;/div&gt;
  1142.  
  1143. </pre>
  1144. <p><strong>WordPress Plugin Code mit Ajax:</strong></p>
  1145. <pre>&lt;?php
  1146. /*
  1147. * Plugin Name: HNP Dyn Template
  1148. * Plugin URI: https://homepage-nach-preis.de/
  1149. * Description: Erstellt 2 Button welche bei Betätigung die Template-Datei auswechseln. Shortcodes: hnp_template_switcher_buttons und hnp_template_switcher
  1150. * Version: 1.1
  1151. * Author: HNP
  1152. * Author URI: https://homepage-nach-preis.de/
  1153. * License: HNP-Dyn-Template
  1154. */
  1155.  
  1156. // Shortcode für den Template-Switcher hinzufügen
  1157. add_shortcode('hnp_template_switcher', 'hnp_custom_template_switcher_shortcode');
  1158.  
  1159. // Funktion zum Rendern des Shortcodes
  1160. function hnp_custom_template_switcher_shortcode() {
  1161.    ob_start();
  1162.    ?&gt;
  1163.    &lt;div id="hnp-template-container"&gt;
  1164.        &lt;!-- Hier wird das Template dynamisch geladen --&gt;
  1165.        &lt;?php include_once(plugin_dir_path(__FILE__) . '/templates/hnp_template_1.php'); ?&gt;
  1166.    &lt;/div&gt;
  1167.    &lt;?php
  1168.    return ob_get_clean();
  1169. }
  1170.  
  1171. // Shortcode für die Schaltflächen zum Wechseln der Templates hinzufügen
  1172. add_shortcode('hnp_template_switcher_buttons', 'hnp_custom_template_switcher_buttons_shortcode');
  1173.  
  1174. // Funktion zum Rendern des Shortcodes für die Schaltflächen
  1175. function hnp_custom_template_switcher_buttons_shortcode() {
  1176.    ob_start();
  1177.    ?&gt;
  1178.    &lt;button id="hnp-template1-btn"&gt;Template 1 laden&lt;/button&gt;
  1179.    &lt;button id="hnp-template2-btn"&gt;Template 2 laden&lt;/button&gt;
  1180.    &lt;?php
  1181.    return ob_get_clean();
  1182. }
  1183.  
  1184. // JavaScript zum Schalten der Templates hinzufügen
  1185. add_action('wp_footer', 'hnp_custom_template_switcher_js');
  1186.  
  1187. function hnp_custom_template_switcher_js() {
  1188.    wp_enqueue_script('hnp-custom-template-switcher', plugin_dir_url(__FILE__) . 'hnp_dyn_template.js', array('jquery'), null, true);
  1189.  
  1190.    wp_localize_script('hnp-custom-template-switcher', 'hnpTemplateSwitcher', array(
  1191.        'ajaxurl' =&gt; admin_url('admin-ajax.php')
  1192.    ));
  1193. }
  1194.  
  1195. // Ajax
  1196. add_action('wp_ajax_load_template', 'hnp_load_template_ajax');
  1197. add_action('wp_ajax_nopriv_load_template', 'hnp_load_template_ajax');
  1198.  
  1199. function hnp_load_template_ajax() {
  1200.    $template = isset($_GET['template']) ? $_GET['template'] : '';
  1201.  
  1202.    if ($template) {
  1203.        // Hier können Sie die Template-Datei laden und den Inhalt zurückgeben
  1204.        include(plugin_dir_path(__FILE__) . '/templates/' . $template);
  1205.    }
  1206.  
  1207.    wp_die();
  1208. }
  1209. </pre>
  1210. <p><strong>Javascript:</strong></p>
  1211. <pre>document.addEventListener('DOMContentLoaded', function() {
  1212.    document.getElementById('hnp-template1-btn').addEventListener('click', function() {
  1213.        loadTemplate('hnp_template_1.php');
  1214.    });
  1215.    document.getElementById('hnp-template2-btn').addEventListener('click', function() {
  1216.        loadTemplate('hnp_template_2.php');
  1217.    });
  1218. });
  1219.  
  1220. function loadTemplate(templateUrl) {
  1221.    var xhr = new XMLHttpRequest();
  1222.    xhr.open('GET', hnpTemplateSwitcher.ajaxurl + '?action=load_template&amp;template=' + templateUrl, true);
  1223.    xhr.onreadystatechange = function() {
  1224.        if (xhr.readyState === 4 &amp;&amp; xhr.status === 200) {
  1225.            document.getElementById('hnp-template-container').innerHTML = xhr.responseText;
  1226.        }
  1227.    };
  1228.    xhr.send();
  1229. }
  1230.  
  1231. </pre>
  1232. <p>Template Dateien hierbei identisch.</p>
  1233. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/07/dynamische-templates-in-wordpress-erzeugen-einbinden/">Dynamische Templates in WordPress erzeugen &#038; einbinden</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1234. ]]></content:encoded>
  1235. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/07/dynamische-templates-in-wordpress-erzeugen-einbinden/feed/</wfw:commentRss>
  1236. <slash:comments>0</slash:comments>
  1237. </item>
  1238. <item>
  1239. <title>Ajax und WP-Ajax verstehen &#8211; Code Beispiel</title>
  1240. <link>https://homepage-nach-preis.de/2024/04/06/ajax-und-wp-ajax-verstehen-code-beispiel/</link>
  1241. <comments>https://homepage-nach-preis.de/2024/04/06/ajax-und-wp-ajax-verstehen-code-beispiel/#respond</comments>
  1242. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1243. <pubDate>Sat, 06 Apr 2024 04:00:17 +0000</pubDate>
  1244. <category><![CDATA[Webdesign]]></category>
  1245. <category><![CDATA[Wordpress Code]]></category>
  1246. <category><![CDATA[Ajax]]></category>
  1247. <category><![CDATA[Beispiel]]></category>
  1248. <category><![CDATA[Code]]></category>
  1249. <category><![CDATA[verstehen]]></category>
  1250. <category><![CDATA[wordpress]]></category>
  1251. <category><![CDATA[Wp-Ajax]]></category>
  1252. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8156</guid>
  1253.  
  1254. <description><![CDATA[<p>AJAX (Asynchronous JavaScript and XML) ist eine Technik, die es ermöglicht, Daten zwischen dem Browser des Benutzers und dem Server auszutauschen, ohne die gesamte Webseite neu zu laden. Dies ermöglicht eine verbesserte Benutzererfahrung, da Inhalte dynamisch aktualisiert werden können, ohne die Seite zu verlassen. Stellen wir uns ein Restaurant vor und einen Kunden, der Kunde erhält seine Bestellung, ohne zum Restaurant fahren zu müssen, also vergleichbar mit einem Lieferanten. AJAX ist die Verbindung zwischen Server und Client, ein praktischer Helfer. Die grundlegende Arbeitsweise von AJAX besteht darin, dass der Browser mithilfe von JavaScript eine HTTP-Anfrage an den Server sendet. Der Server verarbeitet dann die Anfrage und sendet eine Antwort zurück, die vom JavaScript-Code auf der Client-Seite verarbeitet wird. In der Regel werden AJAX-Anfragen verwendet, um Daten im Hintergrund zu laden, Benutzeraktionen zu verarbeiten oder mit einem Server zu kommunizieren, ohne dass die Seite neu geladen werden muss. Dies kann beispielsweise bei der Validierung von Formularen, dem Laden von zusätzlichen Inhalten oder der Aktualisierung von Benutzerdaten nützlich sein. Um AJAX in einer Webseite zu implementieren, wird normalerweise JavaScript verwendet, um die Anfrage zu senden, und auf der Serverseite wird die Anfrage mit einer Programmiersprache wie PHP oder Python verarbeitet. In WordPress....</p>
  1255. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/06/ajax-und-wp-ajax-verstehen-code-beispiel/">Ajax und WP-Ajax verstehen &#8211; Code Beispiel</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1256. ]]></description>
  1257. <content:encoded><![CDATA[<p>AJAX (Asynchronous JavaScript and XML) ist eine Technik, die es ermöglicht, Daten zwischen dem Browser des Benutzers und dem Server auszutauschen, ohne die gesamte Webseite neu zu laden. Dies ermöglicht eine verbesserte Benutzererfahrung, da Inhalte dynamisch aktualisiert werden können, ohne die Seite zu verlassen. Stellen wir uns ein Restaurant vor und einen Kunden, der Kunde erhält seine Bestellung, ohne zum Restaurant fahren zu müssen, also vergleichbar mit einem Lieferanten. AJAX ist die Verbindung zwischen Server und Client, ein praktischer Helfer. </p>
  1258. <p>Die grundlegende Arbeitsweise von AJAX besteht darin, dass der Browser mithilfe von JavaScript eine HTTP-Anfrage an den Server sendet. Der Server verarbeitet dann die Anfrage und sendet eine Antwort zurück, die vom JavaScript-Code auf der Client-Seite verarbeitet wird.</p>
  1259. <p>In der Regel werden AJAX-Anfragen verwendet, um Daten im Hintergrund zu laden, Benutzeraktionen zu verarbeiten oder mit einem Server zu kommunizieren, ohne dass die Seite neu geladen werden muss. Dies kann beispielsweise bei der Validierung von Formularen, dem Laden von zusätzlichen Inhalten oder der Aktualisierung von Benutzerdaten nützlich sein.</p>
  1260. <p>Um AJAX in einer Webseite zu implementieren, wird normalerweise JavaScript verwendet, um die Anfrage zu senden, und auf der Serverseite wird die Anfrage mit einer Programmiersprache wie PHP oder Python verarbeitet.</p>
  1261. <p>In WordPress wird AJAX häufig verwendet, um dynamische Inhalte in Themes und Plugins zu laden, ohne die Seite neu zu laden. WordPress bietet spezielle Funktionen und Hooks für die Verarbeitung von AJAX-Anfragen, was die Implementierung erleichtert. Hierzu ein praktisches Beispiel:<br />
  1262. <strong> WordPress:</strong><br />
  1263. <strong>Javascript:</strong></p>
  1264. <pre>
  1265. document.addEventListener(&#x22;DOMContentLoaded&#x22;, function() {
  1266.    var hnpAjaxButton = document.getElementById(&#x22;hnp_ajax_button&#x22;);
  1267.    
  1268.    hnpAjaxButton.addEventListener(&#x22;click&#x22;, function() {
  1269.        var xhr = new XMLHttpRequest();
  1270.        xhr.open(&#x22;POST&#x22;, ajax_object.ajax_url, true);
  1271.        xhr.setRequestHeader(&#x22;Content-Type&#x22;, &#x22;application/x-www-form-urlencoded&#x22;);
  1272.        xhr.onreadystatechange = function() {
  1273.            if (xhr.readyState === 4 &#x26;&#x26; xhr.status === 200) {
  1274.                alert(&#x22;Server sagt: &#x22; + xhr.responseText);
  1275.            }
  1276.        };
  1277.        xhr.send(&#x22;action=hnp_ajax_funktion&#x22;);
  1278.    });
  1279. });
  1280. </pre>
  1281. <p><strong>PHP</strong></p>
  1282. <pre>
  1283. add_action(&#x27;wp_enqueue_scripts&#x27;, &#x27;hnp_ajax_scripts&#x27;);
  1284. function hnp_ajax_scripts() {
  1285.    wp_enqueue_script(&#x27;hnp-ajax-script&#x27;, get_stylesheet_directory_uri() . &#x27;/js/hnp-ajax-script.js&#x27;, array(), &#x27;1.0&#x27;, true);
  1286.    wp_localize_script(&#x27;hnp-ajax-script&#x27;, &#x27;ajax_object&#x27;, array(&#x27;ajax_url&#x27; =&#x3E; admin_url(&#x27;admin-ajax.php&#x27;)));
  1287. }
  1288.  
  1289. add_action(&#x27;wp_ajax_hnp_ajax_funktion&#x27;, &#x27;meine_ajax_callback&#x27;);
  1290. add_action(&#x27;wp_ajax_nopriv_hnp_ajax_funktion&#x27;, &#x27;meine_ajax_callback&#x27;);
  1291. function meine_ajax_callback() {
  1292.    echo &#x27;Hallo von AJAX!&#x27;;
  1293.    die();
  1294. }
  1295. </pre>
  1296. <p><strong>HTML:</strong></p>
  1297. <pre>
  1298. &#x3C;button id=&#x22;hnp_ajax_button&#x22;&#x3E;Klick mich f&#xFC;r eine Begr&#xFC;&#xDF;ungsnachricht!&#x3C;/button&#x3E;
  1299. </pre>
  1300. <p><strong>ODER Universal:</strong></p>
  1301. <pre>
  1302. &#x3C;!DOCTYPE html&#x3E;
  1303. &#x3C;html lang=&#x22;en&#x22;&#x3E;
  1304. &#x3C;head&#x3E;
  1305.    &#x3C;meta charset=&#x22;UTF-8&#x22;&#x3E;
  1306.    &#x3C;meta name=&#x22;viewport&#x22; content=&#x22;width=device-width, initial-scale=1.0&#x22;&#x3E;
  1307.    &#x3C;title&#x3E;AJAX Beispiel&#x3C;/title&#x3E;
  1308. &#x3C;/head&#x3E;
  1309. &#x3C;body&#x3E;
  1310.    &#x3C;button id=&#x22;hnp_ajax_button&#x22;&#x3E;Klick mich f&#xFC;r eine Begr&#xFC;&#xDF;ungsnachricht!&#x3C;/button&#x3E;
  1311.  
  1312.    &#x3C;script&#x3E;
  1313.        document.addEventListener(&#x22;DOMContentLoaded&#x22;, function() {
  1314.            var hnpAjaxButton = document.getElementById(&#x22;hnp_ajax_button&#x22;);
  1315.            
  1316.            hnpAjaxButton.addEventListener(&#x22;click&#x22;, function() {
  1317.                var xhr = new XMLHttpRequest();
  1318.                xhr.open(&#x22;POST&#x22;, &#x22;server.php&#x22;, true); // Hier &#x22;server.php&#x22; durch die URL des Servers ersetzen, der die AJAX-Anfrage verarbeitet
  1319.                xhr.setRequestHeader(&#x22;Content-Type&#x22;, &#x22;application/x-www-form-urlencoded&#x22;);
  1320.                xhr.onreadystatechange = function() {
  1321.                    if (xhr.readyState === 4 &#x26;&#x26; xhr.status === 200) {
  1322.                        alert(&#x22;Server sagt: &#x22; + xhr.responseText);
  1323.                    }
  1324.                };
  1325.                xhr.send(&#x22;action=hnp_ajax_funktion&#x22;);
  1326.            });
  1327.        });
  1328.    &#x3C;/script&#x3E;
  1329. &#x3C;/body&#x3E;
  1330. &#x3C;/html&#x3E;
  1331.  
  1332. </pre>
  1333. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/06/ajax-und-wp-ajax-verstehen-code-beispiel/">Ajax und WP-Ajax verstehen &#8211; Code Beispiel</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1334. ]]></content:encoded>
  1335. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/06/ajax-und-wp-ajax-verstehen-code-beispiel/feed/</wfw:commentRss>
  1336. <slash:comments>0</slash:comments>
  1337. </item>
  1338. <item>
  1339. <title>HNP Bewertungssystem Plugin</title>
  1340. <link>https://homepage-nach-preis.de/2024/04/05/hnp-bewertungssystem-plugin/</link>
  1341. <comments>https://homepage-nach-preis.de/2024/04/05/hnp-bewertungssystem-plugin/#respond</comments>
  1342. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1343. <pubDate>Fri, 05 Apr 2024 12:24:30 +0000</pubDate>
  1344. <category><![CDATA[Allgemein]]></category>
  1345. <category><![CDATA[Bewertungen]]></category>
  1346. <category><![CDATA[Bewertungssystem]]></category>
  1347. <category><![CDATA[plugin]]></category>
  1348. <category><![CDATA[Rating]]></category>
  1349. <category><![CDATA[Review]]></category>
  1350. <category><![CDATA[wordpress]]></category>
  1351. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8151</guid>
  1352.  
  1353. <description><![CDATA[<p>HNP Rating Form &#8211; Revolutionieren Sie das Bewertungserlebnis auf Ihrer WordPress-Website Das HNP Rating Form Plugin ist die ultimative Lösung, um Ihrer WordPress-Website eine hochmoderne Bewertungsfunktion hinzuzufügen. Mit einer Vielzahl von leistungsstarken Funktionen und einem benutzerfreundlichen Interface bietet dieses Plugin eine nahtlose Möglichkeit, das Feedback Ihrer Benutzer zu sammeln und zu verwalten. Hier sind einige herausragende Merkmale, die das HNP Rating Form Plugin zu bieten hat: &#160; Benutzerfreundliches Backend-Interface Das Plugin bietet eine intuitive und benutzerfreundliche Oberfläche im WordPress-Backend, über die Sie mühelos alle Aspekte Ihres Bewertungssystems verwalten können. Von der Genehmigung von Bewertungen bis hin zur Anpassung der Einstellungen haben Sie alles im Griff. &#160; Sicherheitsfunktionen zum Schutz vor Missbrauch Mit integrierten Sicherheitsfunktionen wie Captcha können Sie Ihr Bewertungssystem vor Spam und Missbrauch schützen. Aktivieren Sie Captcha, um sicherzustellen, dass nur echte Benutzer Bewertungen abgeben können, ohne von unerwünschten Inhalten überflutet zu werden. &#160; Flexible Einstellungsoptionen Passen Sie das Bewertungssystem an Ihre spezifischen Anforderungen an, indem Sie Optionen wie die Anzeige des Bewertungsdatums, die automatische Freischaltung von Bewertungen und die Anzahl der angezeigten Sterne anpassen. Mit dem HNP Rating Form Plugin haben Sie die volle Kontrolle über Ihre Bewertungen. &#160; Leistungsstarke Shortcodes für eine nahtlose Integration Nutzen Sie eine....</p>
  1354. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/05/hnp-bewertungssystem-plugin/">HNP Bewertungssystem Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1355. ]]></description>
  1356. <content:encoded><![CDATA[<h3>HNP Rating Form &#8211; Revolutionieren Sie das Bewertungserlebnis auf Ihrer WordPress-Website</h3>
  1357. <p>Das HNP Rating Form Plugin ist die ultimative Lösung, um Ihrer WordPress-Website eine hochmoderne Bewertungsfunktion hinzuzufügen. Mit einer Vielzahl von leistungsstarken Funktionen und einem benutzerfreundlichen Interface bietet dieses Plugin eine nahtlose Möglichkeit, das Feedback Ihrer Benutzer zu sammeln und zu verwalten. Hier sind einige herausragende Merkmale, die das HNP Rating Form Plugin zu bieten hat:</p>
  1358. <p>&nbsp;</p>
  1359. <h3>Benutzerfreundliches Backend-Interface</h3>
  1360. <p>Das Plugin bietet eine intuitive und benutzerfreundliche Oberfläche im WordPress-Backend, über die Sie mühelos alle Aspekte Ihres Bewertungssystems verwalten können. Von der Genehmigung von Bewertungen bis hin zur Anpassung der Einstellungen haben Sie alles im Griff.</p>
  1361. <p>&nbsp;</p>
  1362. <h3>Sicherheitsfunktionen zum Schutz vor Missbrauch</h3>
  1363. <p>Mit integrierten Sicherheitsfunktionen wie Captcha können Sie Ihr Bewertungssystem vor Spam und Missbrauch schützen. Aktivieren Sie Captcha, um sicherzustellen, dass nur echte Benutzer Bewertungen abgeben können, ohne von unerwünschten Inhalten überflutet zu werden.</p>
  1364. <p>&nbsp;</p>
  1365. <h3>Flexible Einstellungsoptionen</h3>
  1366. <p>Passen Sie das Bewertungssystem an Ihre spezifischen Anforderungen an, indem Sie Optionen wie die Anzeige des Bewertungsdatums, die automatische Freischaltung von Bewertungen und die Anzahl der angezeigten Sterne anpassen. Mit dem HNP Rating Form Plugin haben Sie die volle Kontrolle über Ihre Bewertungen.</p>
  1367. <p>&nbsp;</p>
  1368. <h3>Leistungsstarke Shortcodes für eine nahtlose Integration</h3>
  1369. <p>Nutzen Sie eine Vielzahl von Shortcodes, um Bewertungsformulare und -ergebnisse nahtlos in Ihre Website zu integrieren. Mit Shortcodes können Sie Gesamtbewertungen, Einzelbewertungen und benutzerdefinierte Bewertungsformulare mit Leichtigkeit anzeigen.</p>
  1370. <p>&nbsp;</p>
  1371. <h3>Vollständig anpassbares Design</h3>
  1372. <p>Passen Sie das Aussehen und Verhalten Ihres Bewertungssystems mühelos an, um sicherzustellen, dass es perfekt zu Ihrem Website-Design passt. Mit benutzerdefinierten CSS-Styles können Sie das Aussehen Ihres Bewertungssystems ganz nach Ihren Wünschen gestalten.</p>
  1373. <p>&nbsp;</p>
  1374. <h3>Unterstützung für strukturierte Daten (JSON-LD)</h3>
  1375. <p>Verbessern Sie die Sichtbarkeit Ihrer Website in den Suchergebnissen, indem Sie strukturierte Daten für Rich Snippets hinzufügen. Das Plugin generiert automatisch strukturierte Daten für Ihre Bewertungen, um Suchmaschinen zu helfen, Ihre Inhalte besser zu verstehen.</p>
  1376. <p>&nbsp;</p>
  1377. <p>Das HNP Rating Form Plugin bietet Ihnen alles, was Sie benötigen, um das Benutzerengagement zu steigern, wertvolle Rückmeldungen zu sammeln und das Vertrauen Ihrer Besucher zu stärken. Holen Sie sich noch heute das Plugin und bringen Sie Ihre Bewertungen auf die nächste Stufe!</p>
  1378. <p>Erwecken Sie Ihre Website zum Leben und geben Sie Ihren Benutzern eine Stimme mit dem HNP Rating Form Plugin!</p>
  1379. <p>&nbsp;</p>
  1380. <p><strong>Mehr Lesen &amp; Download:</strong></p>
  1381. <p><a href="https://shop.homepage-nach-preis.de/produkt/hnp-bewertungssystem-wordpress-plugin/" target="_blank" rel="nofollow noopener">https://shop.homepage-nach-preis.de/produkt/hnp-bewertungssystem-wordpress-plugin/</a></p>
  1382. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/05/hnp-bewertungssystem-plugin/">HNP Bewertungssystem Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1383. ]]></content:encoded>
  1384. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/05/hnp-bewertungssystem-plugin/feed/</wfw:commentRss>
  1385. <slash:comments>0</slash:comments>
  1386. </item>
  1387. <item>
  1388. <title>Bild austauschen bei Maus Hover Funktion</title>
  1389. <link>https://homepage-nach-preis.de/2024/04/04/bild-austauschen-bei-maus-hover-funktion/</link>
  1390. <comments>https://homepage-nach-preis.de/2024/04/04/bild-austauschen-bei-maus-hover-funktion/#respond</comments>
  1391. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1392. <pubDate>Thu, 04 Apr 2024 08:03:24 +0000</pubDate>
  1393. <category><![CDATA[Homepage]]></category>
  1394. <category><![CDATA[Webdesign]]></category>
  1395. <category><![CDATA[Wordpress Code]]></category>
  1396. <category><![CDATA[Bild. Austausch]]></category>
  1397. <category><![CDATA[Change]]></category>
  1398. <category><![CDATA[Hover]]></category>
  1399. <category><![CDATA[Maus]]></category>
  1400. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8148</guid>
  1401.  
  1402. <description><![CDATA[<p>Einfache Funktion, um ein Bild auszuwechseln, sobald sich die Maus über dem Bild befindet. Also eine Hover-Change-Image Funktion. HTML Code: &#x3C;div class=&#x22;hnp_container&#x22; onmouseover=&#x22;hnp_showImage2()&#x22; onmouseout=&#x22;hnp_showImage1()&#x22;&#x3E; &#x3C;img class=&#x22;hnp_image&#x22; src=&#x22;WWW.IHRE-WEBSEITE.DE/BILDDATEI-1.JPG&#x22; alt=&#x22;Image 1&#x22;&#x3E; &#x3C;img class=&#x22;hnp_image hnp_image2&#x22; src=&#x22;WWW.IHRE-WEBSEITE.DE/BILDDATEI-2.JPG&#038;&#x22; alt=&#x22;Image 2&#x22;&#x3E; &#x3C;/div&#x3E; Javascript Code: &#x3C;script&#x3E; function hnp_showImage2() { document.querySelector(&#x27;.hnp_image&#x27;).style.display = &#x27;none&#x27;; document.querySelector(&#x27;.hnp_image2&#x27;).style.display = &#x27;block&#x27;; } function hnp_showImage1() { document.querySelector(&#x27;.hnp_image&#x27;).style.display = &#x27;block&#x27;; document.querySelector(&#x27;.hnp_image2&#x27;).style.display = &#x27;none&#x27;; } &#x3C;/script&#x3E; Css: &#x3C;style&#x3E; .hnp_container { position: relative; width: 300px; height: 300px; } .hnp_image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .hnp_image2 { display: none; } &#x3C;/style&#x3E;</p>
  1403. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/bild-austauschen-bei-maus-hover-funktion/">Bild austauschen bei Maus Hover Funktion</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1404. ]]></description>
  1405. <content:encoded><![CDATA[<p>Einfache Funktion, um ein Bild auszuwechseln, sobald sich die Maus über dem Bild befindet. Also eine Hover-Change-Image Funktion. </p>
  1406. <p><strong>HTML Code:</strong></p>
  1407. <pre>
  1408. &#x3C;div class=&#x22;hnp_container&#x22; onmouseover=&#x22;hnp_showImage2()&#x22; onmouseout=&#x22;hnp_showImage1()&#x22;&#x3E;
  1409.  &#x3C;img class=&#x22;hnp_image&#x22; src=&#x22;WWW.IHRE-WEBSEITE.DE/BILDDATEI-1.JPG&#x22; alt=&#x22;Image 1&#x22;&#x3E;
  1410.  &#x3C;img class=&#x22;hnp_image hnp_image2&#x22; src=&#x22;WWW.IHRE-WEBSEITE.DE/BILDDATEI-2.JPG&&#x22; alt=&#x22;Image 2&#x22;&#x3E;
  1411. &#x3C;/div&#x3E;
  1412. </pre>
  1413. <p><strong>Javascript Code:</strong></p>
  1414. <pre>
  1415. &#x3C;script&#x3E;
  1416.  function hnp_showImage2() {
  1417.    document.querySelector(&#x27;.hnp_image&#x27;).style.display = &#x27;none&#x27;;
  1418.    document.querySelector(&#x27;.hnp_image2&#x27;).style.display = &#x27;block&#x27;;
  1419.  }
  1420.  
  1421.  function hnp_showImage1() {
  1422.    document.querySelector(&#x27;.hnp_image&#x27;).style.display = &#x27;block&#x27;;
  1423.    document.querySelector(&#x27;.hnp_image2&#x27;).style.display = &#x27;none&#x27;;
  1424.  }
  1425. &#x3C;/script&#x3E;
  1426. </pre>
  1427. <p><strong>Css:</strong></p>
  1428. <pre>
  1429. &#x3C;style&#x3E;
  1430.  .hnp_container {
  1431.    position: relative;
  1432.    width: 300px;
  1433.    height: 300px;
  1434.  }
  1435.  .hnp_image {
  1436.    position: absolute;
  1437.    top: 0;
  1438.    left: 0;
  1439.    width: 100%;
  1440.    height: 100%;
  1441.  }
  1442.  .hnp_image2 {
  1443.    display: none;
  1444.  }
  1445. &#x3C;/style&#x3E;
  1446. </pre>
  1447. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/bild-austauschen-bei-maus-hover-funktion/">Bild austauschen bei Maus Hover Funktion</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1448. ]]></content:encoded>
  1449. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/04/bild-austauschen-bei-maus-hover-funktion/feed/</wfw:commentRss>
  1450. <slash:comments>0</slash:comments>
  1451. </item>
  1452. <item>
  1453. <title>HNP Variable CSS WordPress Plugin</title>
  1454. <link>https://homepage-nach-preis.de/2024/04/04/hnp-variable-css-wordpress-plugin/</link>
  1455. <comments>https://homepage-nach-preis.de/2024/04/04/hnp-variable-css-wordpress-plugin/#respond</comments>
  1456. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1457. <pubDate>Thu, 04 Apr 2024 03:18:54 +0000</pubDate>
  1458. <category><![CDATA[Webdesign]]></category>
  1459. <category><![CDATA[Wordpress Code]]></category>
  1460. <category><![CDATA[Css]]></category>
  1461. <category><![CDATA[plugin]]></category>
  1462. <category><![CDATA[Var]]></category>
  1463. <category><![CDATA[Variable]]></category>
  1464. <category><![CDATA[wordpress]]></category>
  1465. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8140</guid>
  1466.  
  1467. <description><![CDATA[<p>Das HNP Variable CSS WordPress Plugin ist eine Erweiterung für WordPress-Websites, die eine einfache Möglichkeit bietet, CSS-Variablen oder CSS-Custom-Properties zu verwenden. Nach der Installation und Aktivierung des Plugins können Sie Ihre gewünschten Werte in den Plugin-Optionen festlegen und anschließend diese festgelegten CSS-Variablen in Ihrem Theme verwenden. Dadurch können Sie Ihre Website modern gestalten und zukunftssicher machen, oder sogar das Plugin für Funktionen wie einen Dark Mode nutzen (diese Funktion erfordert möglicherweise zusätzliche Anpassungen). Folgende CSS-Variablen stehen zur Verfügung: hnp_primary-color hnp_secondary-color hnp_tertiary-color hnp_quaternary-color hnp_quinary-color hnp_font-size-small hnp_font-size-medium hnp_font-size-large hnp_font-weight-normal hnp_font-weight-bold hnp_font-weight-light hnp_font-family-primary hnp_font-family-secondary hnp_padding-small hnp_padding-big hnp_transparency-low hnp_transparency-high hnp_margin-small hnp_margin-big &#160; Zusammenfassung der Funktionen: Erstellt eine Optionen-Seite im Plugin, um die VAR CSS-Werte festzulegen und zu speichern. Verwendet JavaScript (ohne jQuery), um die Variablen mit dem CSS zu verbinden. Nutzen Sie die CSS-Variablen für Container, Schriftarten oder andere Stilelemente in Ihrem Theme. &#160; Mehr Information und Download: HNP Variable CSS WordPress Plugin</p>
  1468. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/hnp-variable-css-wordpress-plugin/">HNP Variable CSS WordPress Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1469. ]]></description>
  1470. <content:encoded><![CDATA[<p>Das HNP Variable CSS WordPress Plugin ist eine Erweiterung für WordPress-Websites, die eine einfache Möglichkeit bietet, CSS-Variablen oder CSS-Custom-Properties zu verwenden. Nach der Installation und Aktivierung des Plugins können Sie Ihre gewünschten Werte in den Plugin-Optionen festlegen und anschließend diese festgelegten CSS-Variablen in Ihrem Theme verwenden. Dadurch können Sie Ihre Website modern gestalten und zukunftssicher machen, oder sogar das Plugin für Funktionen wie einen Dark Mode nutzen (diese Funktion erfordert möglicherweise zusätzliche Anpassungen).</p>
  1471. <p><img decoding="async" class="alignnone size-medium wp-image-8144" src="https://homepage-nach-preis.de/wp-content/uploads/2024/04/var-css-wordpress-300x161.jpg" alt="" width="300" height="161" srcset="https://homepage-nach-preis.de/wp-content/uploads/2024/04/var-css-wordpress-300x161.jpg 300w, https://homepage-nach-preis.de/wp-content/uploads/2024/04/var-css-wordpress.jpg 402w" sizes="(max-width: 300px) 100vw, 300px" /></p>
  1472. <p><strong>Folgende CSS-Variablen stehen zur Verfügung:</strong></p>
  1473. <ul>
  1474. <li>hnp_primary-color</li>
  1475. <li>hnp_secondary-color</li>
  1476. <li>hnp_tertiary-color</li>
  1477. <li>hnp_quaternary-color</li>
  1478. <li>hnp_quinary-color</li>
  1479. <li>hnp_font-size-small</li>
  1480. <li>hnp_font-size-medium</li>
  1481. <li>hnp_font-size-large</li>
  1482. <li>hnp_font-weight-normal</li>
  1483. <li>hnp_font-weight-bold</li>
  1484. <li>hnp_font-weight-light</li>
  1485. <li>hnp_font-family-primary</li>
  1486. <li>hnp_font-family-secondary</li>
  1487. <li>hnp_padding-small</li>
  1488. <li>hnp_padding-big</li>
  1489. <li>hnp_transparency-low</li>
  1490. <li>hnp_transparency-high</li>
  1491. <li>hnp_margin-small</li>
  1492. <li>hnp_margin-big</li>
  1493. </ul>
  1494. <p>&nbsp;</p>
  1495. <p><strong>Zusammenfassung der Funktionen:</strong></p>
  1496. <ul>
  1497. <li>Erstellt eine Optionen-Seite im Plugin, um die VAR CSS-Werte festzulegen und zu speichern.</li>
  1498. <li>Verwendet JavaScript (ohne jQuery), um die Variablen mit dem CSS zu verbinden.</li>
  1499. <li>Nutzen Sie die CSS-Variablen für Container, Schriftarten oder andere Stilelemente in Ihrem Theme.</li>
  1500. </ul>
  1501. <p>&nbsp;</p>
  1502. <p><strong>Mehr Information und Download:</strong><br />
  1503. <a href="https://shop.homepage-nach-preis.de/produkt/hnp-variable-css-wordpress-plugin/" target="_blank" rel="nofollow noopener">HNP Variable CSS WordPress Plugin</a></p>
  1504. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/hnp-variable-css-wordpress-plugin/">HNP Variable CSS WordPress Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1505. ]]></content:encoded>
  1506. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/04/hnp-variable-css-wordpress-plugin/feed/</wfw:commentRss>
  1507. <slash:comments>0</slash:comments>
  1508. </item>
  1509. <item>
  1510. <title>Temporäre Produkte WooCommerce Plugin</title>
  1511. <link>https://homepage-nach-preis.de/2024/04/04/temporaere-produkte-woocommerce-plugin/</link>
  1512. <comments>https://homepage-nach-preis.de/2024/04/04/temporaere-produkte-woocommerce-plugin/#respond</comments>
  1513. <dc:creator><![CDATA[Homepage-nach-Preis]]></dc:creator>
  1514. <pubDate>Thu, 04 Apr 2024 03:14:39 +0000</pubDate>
  1515. <category><![CDATA[Homepage]]></category>
  1516. <category><![CDATA[Onlineshop]]></category>
  1517. <category><![CDATA[Webdesign]]></category>
  1518. <category><![CDATA[Wordpress Code]]></category>
  1519. <category><![CDATA[plugin]]></category>
  1520. <category><![CDATA[products]]></category>
  1521. <category><![CDATA[Produkte]]></category>
  1522. <category><![CDATA[temp]]></category>
  1523. <category><![CDATA[Temporäre]]></category>
  1524. <category><![CDATA[Woocommerce]]></category>
  1525. <category><![CDATA[wordpress]]></category>
  1526. <guid isPermaLink="false">https://homepage-nach-preis.de/?p=8135</guid>
  1527.  
  1528. <description><![CDATA[<p>Das HNP Temp Product WooCommerce Plugin erweitert WordPress-Websites, die WooCommerce verwenden, um temporäre Produkte zu verkaufen. Mit einem einfachen Shortcode können Sie einen &#8220;Warenkorb&#8221; -Button hinzufügen, der es Benutzern ermöglicht, individuelle temporäre Produkte direkt in den Warenkorb zu legen. Dieses temporäre Produkt wird automatisch erstellt, sobald der Button gedrückt wird, ohne dass Sie ein spezielles WooCommerce-Produkt erstellen müssen. Nach einer bestimmten Zeit kann das Produkt automatisch aus dem Warenkorb entfernt werden. Zusammenfassung der Funktionen: Einfache Integration: Der Warenkorb-Button kann überall auf der Website platziert werden. Automatische Produkterstellung: Das Drücken des Buttons erstellt automatisch ein temporäres Produkt im Warenkorb. Benutzerfreundlichkeit: Benutzer werden automatisch zum Warenkorb weitergeleitet. Flexibilität: Das Plugin ermöglicht es Entwicklern, das Verhalten des Buttons durch Hinzufügen einer Post-ID anzupassen, um Daten von benutzerdefinierten Beitragstypen oder Blogbeiträgen zu nutzen. Sicherheit: Das Plugin enthält Sicherheitsoptimierungen gegen XSS-Angriffe und direkte Datei-Aufrufe. Performance: Verwendet direktes Javascript ohne jQuery und keine externen Bibliotheken, was zu einer guten Leistung führt. Kompatibel mit PHP 7.x und 8.x. &#160; Mehr Informationen und Download: Temporäre Produkte WooCommerce Plugin</p>
  1529. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/temporaere-produkte-woocommerce-plugin/">Temporäre Produkte WooCommerce Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1530. ]]></description>
  1531. <content:encoded><![CDATA[<p><img decoding="async" class="alignnone size-medium wp-image-8137" src="https://homepage-nach-preis.de/wp-content/uploads/2024/04/temp-produkt-1-300x141.jpg" alt="" width="300" height="141" srcset="https://homepage-nach-preis.de/wp-content/uploads/2024/04/temp-produkt-1-300x141.jpg 300w, https://homepage-nach-preis.de/wp-content/uploads/2024/04/temp-produkt-1.jpg 396w" sizes="(max-width: 300px) 100vw, 300px" /></p>
  1532. <p>Das HNP Temp Product WooCommerce Plugin erweitert WordPress-Websites, die WooCommerce verwenden, um temporäre Produkte zu verkaufen. Mit einem einfachen Shortcode können Sie einen &#8220;Warenkorb&#8221; -Button hinzufügen, der es Benutzern ermöglicht, individuelle temporäre Produkte direkt in den Warenkorb zu legen. Dieses temporäre Produkt wird automatisch erstellt, sobald der Button gedrückt wird, ohne dass Sie ein spezielles WooCommerce-Produkt erstellen müssen. Nach einer bestimmten Zeit kann das Produkt automatisch aus dem Warenkorb entfernt werden.</p>
  1533. <p><strong>Zusammenfassung der Funktionen:</strong></p>
  1534. <ul>
  1535. <li>Einfache Integration: Der Warenkorb-Button kann überall auf der Website platziert werden.</li>
  1536. <li>Automatische Produkterstellung: Das Drücken des Buttons erstellt automatisch ein temporäres Produkt im Warenkorb.</li>
  1537. <li>Benutzerfreundlichkeit: Benutzer werden automatisch zum Warenkorb weitergeleitet.</li>
  1538. <li>Flexibilität: Das Plugin ermöglicht es Entwicklern, das Verhalten des Buttons durch Hinzufügen einer Post-ID anzupassen, um Daten von benutzerdefinierten Beitragstypen oder Blogbeiträgen zu nutzen.</li>
  1539. <li>Sicherheit: Das Plugin enthält Sicherheitsoptimierungen gegen XSS-Angriffe und direkte Datei-Aufrufe.</li>
  1540. <li>Performance: Verwendet direktes Javascript ohne jQuery und keine externen Bibliotheken, was zu einer guten Leistung führt. Kompatibel mit PHP 7.x und 8.x.</li>
  1541. </ul>
  1542. <p>&nbsp;</p>
  1543. <p><strong>Mehr Informationen und Download:</strong><br />
  1544. <a href="https://shop.homepage-nach-preis.de/produkt/hnp-temporaere-woocommerce-produkte/" target="_blank" rel="nofollow noopener">Temporäre Produkte WooCommerce Plugin</a></p>
  1545. <p>Der Beitrag <a rel="nofollow" href="https://homepage-nach-preis.de/2024/04/04/temporaere-produkte-woocommerce-plugin/">Temporäre Produkte WooCommerce Plugin</a> erschien zuerst auf <a rel="nofollow" href="https://homepage-nach-preis.de">Homepage nach Preis - Webseite erstellen lassen</a>. Geschrieben von <a rel="nofollow" href="https://homepage-nach-preis.de/author/homepageadmin/">Homepage-nach-Preis</a>.</p>
  1546. ]]></content:encoded>
  1547. <wfw:commentRss>https://homepage-nach-preis.de/2024/04/04/temporaere-produkte-woocommerce-plugin/feed/</wfw:commentRss>
  1548. <slash:comments>0</slash:comments>
  1549. </item>
  1550. </channel>
  1551. </rss>
  1552.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//homepage-nach-preis.de/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda