Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.
and let’s create something amazing together!
Excel needs to know that you are using non-ASCII characters in your CSV or it will not display them correctly :) Add the BOM(Byte Order Mark) to the first line, notifying Excel that you are offering a UTF-8 encoded file. //headers header(‘Pragma: public’); header(‘Expires: 0’); header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0’); header(‘Content-Description: File Transfer’); header(‘Content-Type: text/csv’); header(‘Content-Disposition: attachment; […]
PHP dotenv loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically. You should never store sensitive credentials in your code. Anything that is likely to change between deployment environments – such as database credentials or credentials for 3rd party services – should be extracted from the code into environment variables. Add your application configuration to a .env file in the root […]
I signed the Sustainable Web Manifesto a couple of weeks ago. The manifesto perfectly reflects how I have been handling my business and my projects. I created a special “GO GREEN” subsection to talk about the topic in more detail and give you some more context about the areas I can help you with. We […]
Since I started in 2002, all iterations of portalZINE have been pure english content websites. You can read about the why on my services page. I had potential customers in Germany complain about that a lot over the past few years. But your own website often suffers, while your customers get all the attention. That […]
Visbug is an amazing new browser extension that allows you to do a visual inspection of your website in development. What they have to say about their tool and capabilities For Designers & Content Creators A really nice tool for designers & content creators, helping them to optimize the look and feel of a website. […]
When performing tasks using the Gravity Forms API, handling notifications and hook execution on demand is something that becomes really handy. <?php trait GravityForm{ function GravityForm_send_notifications($form_id, $entry_id){ // Get the array info for our forms and entries // that we need to send notifications for $form = RGFormsModel::get_form_meta($form_id); $entry = RGFormsModel::get_lead($entry_id); // Loop through all the […]
Updated 25.03. : Some function names changed in the latest beta version. IN BETA ACF 5.8 Beta introduced an easy way to create your custom Gutenberg blocks. I am already using it heavily for a current project, to easily organize content and media assets. Really powerful, when combined with Timber as well, which has been the foundation of many […]
GDPR / DSGVO REQUIREMENTS The GDPR makes us jump through a lot of hoops to cleanup our websites and make all our code compliant. Many aspects of the GDPR are far from completely defined yet and there is a great uncertainty what is required, what can stay and what needs to be adjusted right now. […]
WordPress WooCommerce Appointments WooCommerce Appointments is a commercial booking plugin that allows you to setup appointments with WooCommerce. It has full integration into Google calendar to track appointments of your staff. Staff availability can be set globally or via each staff members profile. While this is nice, I was looking for an option to actually […]
There are many variations of these out there, SSilence/php-imap-client is a lib with a nice set of methods, clean integration and pretty good documentation.Adding it to my goto essentials ! GitHub Enjoy coding … Default IMAP Search Criteria
Visual Composer shortcodes are normally not converted within the WordPress REST API rendered output. This can be accomplished by calling WPBMap::addAllMappedShortcodes(); add_action( ‘rest_api_init’, function () { register_rest_field( ‘page’, ‘content’, array( ‘get_callback’ => ‘convert_do_shortcodes’, ‘update_callback’ => null, ‘schema’ => null, ) ); }); function convert_do_shortcodes( $object, $field_name, $request ) { WPBMap::addAllMappedShortcodes(); // This does all the work global […]
START SESSION ON INIT add_action(‘init’, ‘pluginStartSession’, 1); function pluginStartSession() { if(!session_id()) { session_start(); } } NEW SESSION ON LOGIN / LOGOUT add_action(‘wp_logout’, ‘pluginEndSession’); add_action(‘wp_login’, ‘pluginEndSession’); function pluginEndSession() { session_destroy (); } Now go ahead and use $_SESSION freely in your plugin. Here a nice additional class to encrypt session data. Enjoy coding ….
Simple little snippet, that can easily be used in conjunction with wp_update_user() /* Generate Unique User Nicename */ function generate_unique_user_nicename( $x ) { // set up args to query $args = array( ‘search’ => sanitize_title( $x ), ‘search_columns’ => array( ‘user_nicename’ ) ); // query for user $user_url_exists = new WP_User_Query( $args ); $results = $user_url_exists->get_results(); […]
Logstalgia is a website traffic visualization tool that replays or streams web-server access logs as a pong-like battle between the web server and an never ending torrent of requests. Requests appear as colored balls (the same color as the host) which travel across the screen to arrive at the requested location. Successful requests are hit […]
CodeCombat is a multiplayer programming game for learning how to code. The ultimate goal of CodeCombat is to bring more users into the field of computer programming by making the logic and syntax more accessible and enjoyable to learn. The end game is to educate a whole new generation of computer programmers that started their […]
Quickly draw a leader line in your web page. <div id=”start”>start</div> <div id=”end”>end</div> // Add new leader line from `start` to `end` (HTML/SVG elements, basically). new LeaderLine( document.getElementById(‘start’), document.getElementById(‘end’) ); Leaderline @ Github
We often have some posts that we would like to promote and keep at the first page of the blog. When you are using pagination, the sticky posts will be added to the standard posts, making the post count per page uneven. If you want to keep your posts per page count consistent, there is […]
Font Face Observer is a fast and simple web font loader. You can use it to load fonts and customise your browser’s font loading behaviour. Font Face Observer gives you control over web font loading using a simple promise based interface. It doesn’t matter where your fonts come from: host them yourself, or use a […]
Fun Fun Fun :) var sql = require(‘sql.js’); // or sql = window.SQL if you are in a browser // Create a database var db = new sql.Database(); // NOTE: You can also use new sql.Database(data) where // data is an Uint8Array representing an SQLite database file // Execute some sql sqlstr = “CREATE TABLE […]
What is a @font-face? @font-face is a CSS at-rule used to define custom fonts for use on web pages. It allows web designers and developers to specify downloadable fonts that can be used to render text on their websites, regardless of whether the font is installed on the user’s device. What is the FOUT, FOIT […]
