My blog shares my own experience from working and living in Thailand. Feel free to share and please kindly give me the credit. Enjoy!

WordPress Security Guide

|

A couple of days ago, I saw a post from the Facebook WordPress group asking for help. The issue was that his WordPress site got hacked. The hacker somehow put a hidden script into the server and set the schedule … Read More

How to Point a Domain Name to Your Site

|

“How to Point a Domain Name to Your Site” is a normal question that my clients ask me often. Most of them don’t have any knowledge of web technology. They don’t know that domain name and web hosting can host … Read More

Dev domain name with an SSL certificate

|

If I remember right, since 2017, the .DEV is intended to be a secure namespace, so all potential .DEV domain owners must secure their website with an SSL certificate. Even you create the virtual host on your own localhost or … Read More

D.I.Y Air Purifier in 10 sec

|

This year, the air pollution in the North of Thailand is the worst in the history. Chiang Mai air quality hit the first ranking of World AQI chart last month. That how the air pollution was bad here. This is … Read More

Living in Thailand with Termite

|

Living in Thailand, you may see or hear people has a termite problem. In Thailand, we build the house with the concrete(mixing between cement and sand) and steel. A few of houses built by half concrete and wood which are … Read More

How To Automatically Delete Forwarded Emails in CPanel

|

Lately, I set up a new host as well as the email accounts for my client. The host I use it is the Siteground. The host is really great. I have been using it for another e-commerce website(the site includes … Read More

How to set the application timezone and MySQL for Yii2

|

I built my own application in 2017 when I lived in the USA and all my clients were American. The timezone that I set at that time is Pacific timezone. In 2018, I moved back to Thailand and I need … Read More

How to Move WordPress to a New Host

|

There are two ways that you can move the WordPress website to the new host. One is using the plugins and another is using PhpMyAdmin or other MySQL interface application. I gonna talk about moving the site without the plugins. I … Read More

How to clear the assets cache in Yii2

|

With Yii2, it comes with the asset management calls asset bundle. An asset bundle is simply a collection of assets located in a directory. When you register an asset bundle in a view, it will include the CSS and JavaScript files in … Read More

How to save the multi-records in one model in single transaction in Yii2

|

Recently I just add the new feature on my application. What new feature does, it generates the new invoice from the time-sheet. This way, my clients can see my log time and note on each task. So they know in … Read More

How to export database from Yii2 application

|

The export database feature is nice to have for backup and restore the database from either website or web application. I added the export database in my application using the PHP based MySQL dump library. I did the search and found … Read More

How to create the bulk action in Yii2

|

Howdy, working in the back-end in the web application, often you will find the bulk actions is very useful when you want to do the action with more than one records at once. Today I will share with you how … Read More

How to create the module in Yii2

|

Recently I have been adding the new features to my own application. I add new features using the module so I can disable and enable each module easily in the application configuration. The module is self-contained software unit that contains … Read More

How to remove the extension or package with composer

|

Often when I work with the PHP framework and I want to install the extensions or packages in general term, in order to use in the framework, for PHP, we use composer. In js framework, you will use npm or … Read More

(TM47) 90 days reporting for Thai Retirement Visa – Online

|

(last update on 9 Jan 2019) For Thai Retirement Visa, you must report every 90 days. It is time consuming if you have to report in person. Luckily, you have a choice that let you do online.   Follow the … Read More

How to add the pagination dropdown list in GridView in Yii2

|

Earlier, I wrote how to add the summary footer in the gridview widget. The grand total column will sum all the total column on each page and the default page size of gridview is 20 items per page. I want … Read More

How to add the summary in the Gridview footer in Yii2

|

Currently I am building the invoice feature in my own application with Yii2. I use the gridview widget for displaying all invoices data. I want to add the grand total for all invoices. Just like the screen shot below. To … Read More

Building WordPress Plugins with Object Oriented Concept

|

When I develop the custom plugin, I prefer to build the custom plugin with Object Oriented Programming(OOP) to avoid the conflict from other plugins or the themes. Plus my code is cleaner and more organized. Today I will share how … Read More

How to validate a form with jQuery validation plugin

|

When you want to do the form validation you can do from the client side and server side. I like to do on the client side so users can get the notification message right away after leaving the input field. … Read More

How to avoid jquery conflicts in WordPress

|

As WordPress developers know that the jQuery in WordPress runs in noConflict mode. Which means when you enqueue the script that is dependent on jQuery in WordPress, you cannot use the common $ alias. To solve this issue, you can … Read More

How to call a PHP function from Javascript in WordPress

|

Often when I work on the custom plugins or custom themes, I will call the PHP functions within the JavaScript. I do that because I want the data that normally can access via PHP to be available on my script. … Read More

How to create the shortcode in the WordPress plugin

|

Create the shortcode is very simple. Only one thing you have to remember is to print out the content from the callback function. You can add the content to the variable and return this variable in the callback function. However, … Read More

How to make a WordPress Admin Options page without using the Setting API

|

Last week, I did one small task which is adding the floating survey button on the front page. At the backend, the client is able to add the link and enable or disable the survey button for the front page. I … Read More

Translating WordPress Plugins

|

A few days ago, I wrote how to add the translation files to your child theme. If you use the theme which doesn’t come with the translation files for your language, you should check this post. Today I gonna talk … Read More

Adding Translation Files To Your Child Theme

|

Last week, I received the urgent project from my client. The site needed to be online within one day. The client requested only two pages which were the front page and contact page. Also, I needed to add all content … Read More

Checklist for Thai Retirement Extension

|

For a Thai retirement visa, a person who holds this kind of visa must report at the immigration every 3 months. You can report 15 days before the due date or 7 days after the due date. If you miss … Read More

How to send an email using SMTP in localhost with WAMP

|

When I develop the email function on my localhost, I like to set the Gmail for sending an email from my localhost. It is convenient and easy to set up. Today, I will share how to set up the Gmail account … Read More

How to make your WAMP runs faster in Windows10

|

I have been using WAMP for years. Sometimes I notice the web page loads slower than the same web page on the internet. So I did research on the internet and found out for my case, I just need to … Read More

My Favorite Visual Studio Code Extensions

|

I have been using the visual studio code since 2016. The cool features that I like the most is the outline code and Emmet. It is very useful when I develop the complex application or large website. Other extensions that … Read More

How to change the default drop-down box on iPhone

|

When you are working on the responsive design. You want your design works well across all devices. Today I will share how to change the default dropdown box on the iPhone.   HTML <select> <option value=”Apple”>Apple</option> <option value=”Samsung”>Samsung</option> <option value=”Huawei”>Huawei</option> … Read More

How to send an email via WAMP on your localhost

|

When I develop the email function on my localhost, I like to use the Gmail account for sending an email from my localhost. It is convenient and easy to set up. Today, I will share my method with you how to … Read More

Redirect the old URL to new URL in WordPress

|

It is common that your clients want to change the slugs for the different reasons. When the slug of the page changes, the old URL will return 404 error. Normally, we will redirect the old URL to the new URL … Read More

Remote Debugging On Android Devices From Windows

|

Sometimes, you have a style issue that occurs on the real mobile device only. If you were developing the site on the PC, it is easy to use the inspection tool that comes with the browsers. But for the real … Read More

Add a MailChimp Signup Form to Your Website

|

A few days ago, I got a request to add the signup form from MailChimp to the WordPress site. There are four fields in the form which are first name, last name, phone number, and email. All fields are required. … Read More

How to add the links inside the select box

|

We all know that we can not add the links inside the <option> in the select box. Today I gonna share one simple trick with pure javascript.   Let’s say you want to add the links inside the <option> like … Read More

How to increase the maximum file upload size in Multisite WordPress Network with WHM

|

Today I gonna share how to increase the maximum file upload size in Multisite  WordPress Network with WHM.   WHM What is WHM? WHM stands for WebHost Manager. WHM provides administrative control over your dedicated server or VPS. You can manage … Read More

How to trigger a click on a link using jQuery

|

Today I am working on some small tasks. It should not take long. But I stuck on one issue for a while. Here is what I am trying to do.   I have the page link list that is generated by … Read More

Thai Retirement Visa

|

Today my husband went to apply for the Thai retirement visa at Chiang Mai immigration office at Promenada. The office opened at 8.30 am but we saw many people get in the line when we arrived. We got the latest queue … Read More

I can not access to WP dashboard after migration

|

Today I am working on one WordPress project. The site is very simple. No extreme plugins are on the site. What I did, I just migrate the database (using WP Migrate DB plugin) and transfer all WP files to my … Read More

Multiple grids on one page in Yii2

|

Recently I upgrade my application and I add two Gridview widgets on one page. Everything seems working fine until I notice the pagination of all Gridview widgets won’t work properly. There are two issues that I found.   Issue #1 … Read More

TM30 – report to immigration within 24 hours

|

Lately, if you are the house or condo owner and you have the foreigners stay in your properties, you must report the immigration within 24 hours. If not, you will be fine 1,600 baht. Here is the document you need. … Read More

How to get Thai motorcycle driver’s license in Chiang Mai

|

In Chiang Mai, the best way to get around in the city is using the motorcycle. If you have NON-O visa (NON-Immigrate visa), you can apply for the driver license.   Here is the document you need for apply Passport Copy … Read More

WordPress VS Modx

|

Before you read this post, I want to say the post is my opinion. Some people may think differently from me.   I started to use Modx in 2009. It was fast learning and developing. You can transfer the HTML … Read More

How to get a residence certificate in Chiang Mai

|

My husband is a foreigner and he wants to get a motorcycle driver license in Chiang Mai. Before he applies for a driver’s license he needs to get a residence certificate first. Since we rent a condo, the landlord must … Read More

SASS, CSS framework and Task runners

|

Many years ago, I worked with a web designer. What she did, she designed and created the templates for the web applications and gave to the developers to integrate into the web application. At that time, I never used CSS … Read More

Upload file won’t send to backend with Ajax

|

Sometimes you create a form by containing the file input field(such as upload image file) and other text input fields. And you want to send all form data to the backend using Ajax. But you find out the only the … Read More

Global search box in grid view widget in Yii2

|

One feature that the users like, is the global search. With CRUD from gii module, the index.php comes with filters for each column in grid view. The attribute calls filterModel. It is good and it is working perfectly. But it … Read More

Ajax validation in Yii2

|

Yii version 2.0.13.1  When you are working on a form validation, sometimes it is better for the users if you do the Ajax validation on a form. This way, users will get the warning message after they fill in each … Read More

VScode and XDebug

|

Visual Studio Code version 1.19.3 Recently I change my developing tool from NetBeans to VScode(Visual Studio Code). The main reason is, VScode is faster. Plus I can integrate the XDebug extension to VScode easily. Here I will share with you how … Read More

Override delete confirm dialog in Yii2

|

Yii version 2.0.13.1 In grid view widget, the delete button uses the window confirm dialog which is simple. But it would be better if it can be changed to use the confirm dialog with bootstrap style. Since Yii2 is already integrated with … Read More

Language switcher in Yii2

|

Yii version 2.0.13.1 Currently, I am building the custom application with Yii2. I want to add the language switcher in the application. I found some posts that help but these posts won’t explain well. So I try to explain what … Read More

All js won’t work after Pjax reloads

|

Yii version 2.0.13.1 When you work with Pjax either Pjax jquery or Pjax module, you may face the same issue as me. I am working on Pjax widget in Yii2.0. The widget uses Pjax jquery.   Problem Every time the … Read More

Select2 plugin does not function properly in bootstrap modal

|

Yii version 2.0.13.1 Select2 plugin is very useful plugin when you are building the custom application or website.   Problem When I use the select2 inside a bootstrap modal. I can not type anything in the input field that attaches to … Read More

Pjax is not working, reloads the whole page

|

Yii version 2.0.13.1 Recently I am working on building the custom application with Yii2.0. I have one issue with Pjax widget. It turns out to be a common issue when you are working on Pjax.   Problem I want to … Read More