CozyStay Theme Documentation

## 1. WordPress Basics

To install CozyStay theme, first you need a self-hosted WordPress site. Click the link below to go to WordPress download page, there you will find useful information about installing WordPress.

WordPress Download Page

If you are new to WordPress, we recommend reading some articles about basic knowledge of WordPress before you get started. WordPress is a powerful system with a lot of features, knowing some basics about it will help you to manage your site easily.

- How to install WordPress
- General basics you need to know about WordPress
- FAQ New To WordPress
- WordPress Official User Guide & Support
- Google WordPress Basic Tutorials
- WPBeginner - Beginner's Guide for WordPress

Here are some detailed WordPress beginner tutorials that we find useful:

- Navigation Menus
  - What is: Navigation Menus
  - How to Add Navigation Menu in WordPress
  - How to Add Titles in WordPress Menu Without Linking to a Page
  - Tutorial Video: How to Create a Dropdown Menu in WordPress (Beginners Guide)
- Writing Content - Posts & Pages
  - How to Add a New Post in WordPress and Utilize all the Features
  - 16 Tips for Mastering the WordPress Content Editor
  - What is the Difference Between Posts vs. Pages in WordPress.
  - What is: Featured Image
  - Cover Image vs. Featured Image in WordPress Block Editor
  - How to Add and Align Images in WordPress Block Editor (Gutenberg)
  - How to Create a Reusable Block in WordPress Block Editor (Gutenberg)
- Widgets & Sidebar
  - What is: Widgets
  - How to Add and Use Widgets in WordPress
  - What is: Sidebar
- Taxonomy
  - What is: Taxonomy
  - What is: Category
  - What is: Tag
- WordPress Customizer
  - How to Use WordPress Theme Customizer Like a Pro

## 2. CozyStay Installation

### 2.1 Theme Requirements

#### Theme Requirements

To use CozyStay theme, please make sure your server meets the following requirements:

- WordPress 6.0 or higher
- PHP 5.6 or higher
- mysql 5.2 or higher

#### Minimum PHP requirements

If you encounter any issue listed below, it is related to low PHP configuration limits:

- Can't upload the theme to your site
- Can't import a demo
- "Are You Sure You Want to Do This" Error
- White screen
- Can't install plugins on the dashboard
- Internal Server Error
- Connection Timed Out
- Maximum execution time exceeded
- Allowed Memory Size Exhausted error
- and other similar issues

The solution is to increase those PHP configuration limits. Please log into your hosting cPanel and change them. Or you can try to contact your hosting provider and ask them to increase those limits to a minimum as follows:

max_execution_time | 30
max_input_time | 60
memory_limit | 256M
post_max_size | 64M
upload_max_filesize | 64M

#### Your Website Configuration

About PHP:

- PHP Version - The minimum PHP version required for CozyStay is 5.6, but we recommend always using the latest stable version of PHP whenever possible. And WordPress recommends using PHP 7+ (please refer to this article: https://wordpress.org/about/requirements/ ).
- For your security - PHP versions lower than 7.0 have reached the official end of their life cycle and may expose your site to security vulnerabilities. We strongly recommend that you no longer use the old PHP version, please always update to the latest version (Supported Versions of PHP).

> In most cases you cannot update the PHP version yourself and need to contact your host about this. The upgrade process is an easy process and should be something your host can do for you without impacting your website or charging you a fee.

> How to update your PHP version – by WooCommerce

About WordPress:

- WordPress Version - Although the minimum WordPress version requirement for running CozyStay theme is 6.0, we recommend always using the latest version of WordPress. There are many reasons why you should keep your WordPress updated (security, new features, bug fixes, speed, compatibility). You may like to read this article.

### 2.2 Theme Installation

We assume that you already have a running WordPress site. Now let's install CozyStay theme.

You need to download the theme zip file from ThemeForest first. Go to Downloads on ThemeForest, and find CozyStay. Download the files and find cozystay.zip - that's what you need for installation.

- If you download the whole package, please unzip it, in the "WordPress Theme" folder, find cozystay.zip.
- Or, you can download the Installable WordPress File Only - which is cozystay.zip.

Please do not upload the zip file of the entire package (which contains "All files and documentation") for installation. Or you will see "The package could not be installed. The theme is missing the style.css stylesheet" error message. If you see this error message, please unzip the file you tried to upload and then find "cozystay.zip" file in it.

Here is an article you may like to read: Theme is missing the style.css stylesheet error.

#### Installing the theme via WordPress admin panel

1. On your website admin panel, go to Appearance > Themes > Add New > Upload Theme.
2. Choose cozystay.zip you just downloaded.
3. Install and activate it.
4. You will see the notice “This theme requires/recommends the following plugins…”, please click on those links and follow instructions to install those plugins.
5. Done.

#### Installing the theme via FTP

If you can't install the theme via WordPress admin panel, you can try to install it via FTP.

1. Find the file - cozystay.zip, unzip it.
2. Upload the unzipped folder to your FTP > WordPress site root > wp-content > themes.
3. Go back to your site admin panel > Appearance > Themes, activate CozyStay theme.
4. You will see the notice “This theme requires/recommends the following plugins…”, please click on those links and follow instructions to install those plugins.
5. Done.

Please note: If you are going to write custom code for the theme, then please check this section.

### 2.3 Install Required Plugin

As mentioned above, when installing & activating CozyStay theme, you will see the notice "This theme requires the following plugin: CozyStay Core". It is the CozyStay Theme function extensions - including these features: post like, post sharing, gallery slider, Instagram feed and more.

Why do you need to install the required plugin?

Because of WordPress code standards and ThemeForest requirements: "Themes execute the presentation and styling of content, while plugins handle content creation and functionality." Therefore, some features must be included in the required plugin but not included in the theme itself.

Please follow the steps below:

1. After Installing CozyStay theme, activate it, then you will see a note box, it says: "This theme requires the following plugin: CozyStay Core." Click on Begin installing plugin link.
2. After clicking on "Begin installing plugin" link, it will go to "Install Required Plugins" page (or you can get to that page via Appreance > Install Plugins), then click on Install link below "CozyStay Core".
3. Then activate "CozyStay Core".

If you need to find "CozyStay Core" zip file, please:

- You can download the whole package, unzip it to get a folder and open it, then go to "Plugin" to find "cozystay-core.zip".

### 2.4 Recommended Plugins

As mentioned above, when installing & activating CozyStay theme, you will see the notice "This theme recommends the following plugins…". Those plugins are not required to use the theme, but will extend the theme basic functionality. All those plugins are hosted on the official WordPress repository and are made by other authors. You don't need to install and activate all of them, just choose those you will use on your site.

1. After Installing CozyStay theme, activate it, then you will see a note box, it says: "This theme recommends the following plugin: …" Click on "Begin installing plugin" to install it.
2. After clicking on "Begin installing plugin" link, it will go to "Install Required Plugins" page, tick the boxes of the plugins you will need on your site, then choose "Install" from "Bulk Actions" drop down list and click on "Apply" button. (You can install the required plugin and recommended plugins at one time.)
3. Then don't forget to activate those plugins.

The recommended plugins are:

- Elementor - The leading website building platform for WordPress.
- WooCommerce - Let travelers book and pay for rooms directly on your website. And you can also use this plugin to build your own online shop and sell anything.
- One Click Demo Import - To import theme demo data for a quick start.
- Contact Form 7 - To create a contact form and add it to your page.
- MailChimp for WordPress - To create a subsribe form and can add it to content area, widget areas and site footer.
- Yoast SEO - To optimize your website SEO.

### 2.5 Image Size

To make sure images on your site always look sharp and clear on all devices, the recommended width of images is at least 1920 px when it is supposed to be a full-width image.

Images will be scaled and saved into different sizes after you upload them. If your website already has some images before switching to CozyStay theme, you will need to regenerate these images into the new sizes. Please use this plugin: Regenerate Thumbnails. Otherwise, the theme will use the original images when the proper image sizes cannot be found, which may slow down your website performance.

You can set image sizes via dashboard > Settings > Media.

Recommended media sizes for CozyStay theme:

- Thumbnail size - Max Width: 150, Max Height: 150
- Medium size - Max Width: 300, Max Height: 300
- Large size - Max Width: 1024, Max Height: 1024
- Full size - 1920 x 1280 (3:2)

After you change the media size settings, when you upload new images they will be scaled and saved into the new sizes. But for the existing images, you can use this plugin to regenerate the new sizes: Regenerate Thumbnails.

#### Optimizing Images

Image quality and quantity are important for a website speed & performance, and also important for user experience. You need to find a balance between them.

Before uploading your images to your website, please optimize your images first (using Photoshop or other image editing tools). Please check this article: How to Optimize Images for Better Web Design & SEO.

- Optimal file size: The number of bytes the file takes up on your computer. This is the factor that can slow your website way down. A 15MB (megabyte) image is huge. Large images or full-screen background images should be no more than 1 MB. Most other small web graphics can be 300 KB or less.
- Image size: The actual dimensions of your image, in pixels. As we mentioned in the Image Size subchapter, the recommended width of images is at least 1920 px when it is supposed to be a full-width image (for example, a fullwidth post slider on the homepage). If the image is not used as a full-width image, you can resize your image to a smaller size.

After uploading your images to your website, you can install this plugin to further optimize them: Smush.

### 2.6 Theme Basic Settings

After installing and activating the theme, please go to Dashboard > CozyStay, there you will find some basic settings for the theme.

Theme Basic Settings

#### The Required Plugin

In this panel, you will find some basic information about the required plugin "CozyStay Core". And there are 2 options:

- Auto update the plugin when updating the theme
- Auto activate the plugin when activating the theme

When there is a newer version of the theme, after updating the theme itself, you usually need to update the required plugins to ensure maximum compatibility with the theme. However, in rare cases, some users may forget to update the plugin after updating the theme, and then some problems will occur.

In addition, some users may switch themes, they may forget to activate the required plugin after switching back to CozyStay theme, and then they will find that some features no longer work.

In order to avoid the above situations, we recommend checking both options.

#### Custom Font

In this panel, you can upload your custom font, or add Adobe Font to your website. The detailed tutorials can be found in this chapter of the documentation.

#### Docs & Support

In this panel, we provide the link to the online documentation so that users can easily access the documentation, without having to save the URL to the browser.

## 3. Updating

When updating the theme, please follow the following 2 steps:

- Step 1 - Update the theme first;
- Step 2 - Then, please also update the Required Plugin: "CozyStay Core". (See details here)

### 3.1 Update Theme

#### Auto Update with Envato Market Plugin

We recommend Envato Market plugin. It can install WordPress themes and plugins purchased from ThemeForest & CodeCanyon by connecting with the Envato Market API using a secure OAuth personal token. Once your themes & plugins are installed WordPress will periodically check for updates, so keeping your items up to date is as simple as a few clicks.

You can download the plugin from its official download page: https://envato.com/market-plugin/. And then upload it to your site and install it.

Then go to Envato Market > Settings, click on the link to generate a personal token, and then insert it below, then save changes.

Click on the link to generate an Envato API Personal Token

When generating your personal token, please use the same Envato account you used when purchased the theme, and make sure you have checked the following 3 permission options:

1. View and search Envato sites
2. Download your purchased items
3. List purchases you've made

Generating Envato API Personal Token.

Once the Envato API connection is made from the Settings page, a list of available Themes will be shown. This will list all WordPress Themes that have been purchased through the Envato Market / ThemeForest. The page may look like this:

Items purchased from Envato will display on the page.

If there is a newer version for a theme or a plugin, it will show a notice, and you can update the item by clicking on the link Update Available.

Since the plugin checks for updates periodically, if you don't see the update notification, please wait for a while.

You can find more instructions about this plugin on this page: https://envato.com/market-plugin/

### 3.2 Update Required Plugin

When updating CozyStay theme, if you also see this note:

"The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: CozyStay Core."

1. Please click on Begin updating plugin link to update the CozyStay Core plugin. Alternatively, you can go to Appearance > Install Plugins.
2. You can see the status of "CozyStay Core" is "Active, Requires Update". And it also shows the Installed Version of "CozyStay Core" on your site, and you can find there are messages about Minimum required version and Available version. Please click on the Update link below "CozyStay Core".
3. After the plugin updated, please click on the "Return to Required Plugins Installer" link.
4. You may see the plugin's status "Installed But Not Activated". If so, please click on the Activate link to reactivate the required plugin.

You can choose to enable auto-update and auto-activation of the required plugin. Please go to "Appearance" > "CozyStay Theme Basic Settings", and there are 2 options:

- Auto update the plugin when updating the theme
- Auto activate the plugin when activating the theme

Please check Theme Basic Settings for more details.

### 3.3 After Updating theme or any plugins

If you have installed any cache plugin to optimize performance, such as the "W3 Total Cache" plugin, then, after updating the theme and the required plugin (or any other third-party plugins), you need to minify CSS again, and then clear the website cache. If you are using "W3 Total Cache", please follow these steps:

1. On your website dashboard, please navigate to the top admin bar > "Performance" > "Purge Modules" > click "Minify".
2. Then please click "Purge All Caches".
3. Click "Purge Modules > Page Cache: All".
4. Click "Purge Modules > Opcode Cache".
5. Then, please also clear the browser cache.

Minify CSS again, and then clear the website cache

If you are using another cache plugin, you can also find similar features in the cache plugin.

If you do not perform these operations after the update, your site will still use the old minified JavaScript code and the previous cache files, resulting in a mismatch between the old code and the new code, resulting in errors and causing the site to not work properly.

## 4. Demo Importing

Importing a demo to your site is optional for using CozyStay theme. It is for easy start - when you have a fresh WordPress installation, you can import some dummy content and predesigned layouts & styles to your site, then you can replace with your own content, and tweak some layouts and colors.

To import the demo content, please make sure you have installed the recommended plugin One Click Demo Import, and please also install and activate all other recommended plugins (you can deactivate the unnecessary plugins later).

After installing CozyStay theme and required/recommended plugins, refresh the page, you will see Import Demo Data under Appearance in the left sidebar. Click it, then you will see the available demos. Choose one demo, click on the Import button.

It can take a couple of minutes, please wait.

Please note: Don't import multiple demos to the same site, it will create duplicate data.

When importing finished, please follow the steps below:

1. IMPORTANT! Setup WooCommerce if you would like to use the built-in room booking feature provided by the theme. We use WooCommerce for secure payments, order management and more.
2. Setup MailChimp for WP plugin if you need a newsletter subscribe form
3. Please install the Yoast SEO plugin to optimize your website SEO.

1. If you would like to use the built-in room booking feature provided by the theme, please install and activate WooCommerce plugin. Please find more information in this section.
2. On the demo import page, you will see there is a note:
   Demo Import - Setup MailChimp for WordPress
   If you want to build the subscription form with the plugin MailChimp for WordPress, click on the link to get to the settings page of the plugin, then enter your MailChimp API key, and create a form. Please read more in this section.

### If you encounter issues while importing a demo

It happens rarely, but if you have issues while importing a demo, please check the documentation Import Issues written by the author of the plugin One Click Demo Import (which we are using for demo importing feature in the theme).

##### Error: Internal Server Error (500)

If you see this error message after clicking on import button, this usually indicates a poor server configuration, usually on a cheap shared hosting (low values for PHP settings, missing PHP modules, and so on). Please see this article to know how to fix it.

Alternatively, you can provide us with the following information so that our developer can check that for you:

1. Your website URL.
2. Your website login information. You can use this plugin to create a Temporary Login Without Password.
3. Which demo you'd like to import, so that we can help you import the demo.
4. Your (or a temporary) FTP account, so that we can check the error log on your website.
5. Please open a support ticket at Loft.Ocean Help Center, and send these information to our support team.

## 5. Theme Options

On your site admin panel, please go to Appearance > Customize, there you can customise and personalise your theme layout and styles.

Open Customizer

### 5.1 Site Identity

You will find the following options in this section:

- Logo – Upload your custom brand image then display it as site logo in the site header.
- Logo Width – To keep your custom brand image look sharp on retina devices, we recommend upload an image with 2x size and give 1x size. For example, upload an image which is 200 x 200 px, and enter 100 px as the image width value.
- Site Title – Enter your site title and it will show in the site header below the logo image.
- Tagline – Input the brief description of your site.
- Display Site Title and Tagline – Uncheck it to hide site title and tagline so only show the logo image.
- Site Icon – Upload a square image to use it as a browser and app icon (the favicon) for your site.

#### Upload a SVG Logo

If you need to upload a SVG logo, please use this plugin: Safe SVG or SVG Support.

### 5.2 Site Layout & Site Width

To customize your site layout, please go to WordPress Customizer > General > General Layouts.

You can change the following settings:

- Choose custom background color for the entire site.
- Upload a site background image.
- Content Max Width - Select "Custom" and then you can enter a custom maximum width. The default content max width is 1200px.

#### Elementor Content Width

You may also need to adjust the width of the Elementor page in order to match the content width set in the theme options.

The default content maximum width of the theme is 1300 pixels, while the default content maximum width of Elementor is 1140 pixels. For best results, always keep these two data consistent.

Therefore, if you change the Content Max Width in the Customizer, please also change the Elementor Content Width to the same value.

How to change the Elementor Content Width: Simply "Edit with Elementor" any page or post, click the hamburger menu icon in the upper left corner of the Elementor Widget Panel, and click on Site Settings > Layout > Content Width.

This is a global setting that will take effect on all Elementor pages on the current site when changed.

Change Elementor Content Width

### 5.3 Colors & Styles

You can change general color settings, and also can override color settings for specific elements, like site header, mobile menu, site footer, etc.

#### General Color Settings

Please go to WordPress Customizer > Colors & Styles > General Colors, there you can:

- Choose a basic color scheme for your site: Light or Dark.
- You can choose an Primary Accent Color. The accent color will be applied to links (hover state), buttons, and other highlighted elements.
- You can set Secondary Accent Color
- You can also modify text/background colors for the 2 color schemes.

#### Links Colors

Please go to WordPress Customizer > Colors & Styles > Links, there you can set link colors separately for Light & Dark color schemes.

#### Button Styles & Colors

Please go to WordPress Customizer > Colors & Styles > Buttons, there you can set the Default Button Shape, and Default Button Colors.

These colors and the button shape can be overwritten when editing each specific button with Elementor.

#### Forms Basic Styles

Please go to WordPress Customizer > Colors & Styles > Forms, there you can set the Global Form Field Style, and change the Field Border Width.

#### Blog Meta & Room Subtitle Colors

Please go to WordPress Customizer > Colors & Styles > Others, there you can set the global Blog & Post Meta Color and Room Subtitle Color.

### 5.4 Site Header

#### Setting Up the Site Header

Please go to WordPress Customizer > Site Header > Header, there you can:

- Use the Default Site Header - Then you can adjust the following options:
  - Enable Sticky Header effect or not.
  - Enable / Disable the Overlap Header
  - Display / Show the Search Icon
  - Display / Show the Mini Cart - WooCommerce is required.
  - If you'd like to change more elements for the site header, please use the Header Builder to create a custom header and select it as the site header.
- Select a Custom Site Header
  - Please create a site header in the Header Builder (more details can be found in this sub-chapter), and then you can select it and set it as the global site header here.
  - Enable Sticky Header effect or not. - If enabled, please select a site header from the dropdown list.

What is set here is the global site header of the entire site. You can choose different site headers for different pages. For related settings, please refer to the Single Page Options section.

### 5.5 Mobile Menu

Go to Appearance > Customizer > Site Header > Fullscreen/Mobile Menu.

By default, the following elements will be displayed automatically in the mobile menu screen:

1. Primary Menu (How to manage menus)
2. Social Menu (How to create your social menu)
3. Copyright Text (or any custom text)

To know more details about how to set up menus, please read Menu section in this documentation.

You can also change the following styles of the mobile menu:

1. Background Color
2. Background Image
3. Text Color
4. Entrance Animation
5. Width

#### Custom Mobile Menu

If you would like to change more content/styles of the mobile menu, please create a new Custom Block (please navigate to Dashboard > Custom Blocks), and then select it to display in the mobile menu. For the detailed instructions, please see this subsection of the documentation.

### 5.6 Site Footer

Please go to Appearance > Customizer > Site Footer, there are 4 sub sections:

- Footer Main – Select a Custom Block as the global Site Footer.
- Before Footer – Enter some content or select a Custom Block to display before the Site Footer Area globally.
- Instagram – Display a Fullwidth Instagram Feed in site footer. Please set up your Instagram first.
- Footer Bottom – Add your copyright text to the bottom bar of the site footer. And you can change the colors of this area.

How to manage the custom blocks: please navigate to Dashboard > Custom Blocks (for more details please refer to this section).

The above four subsections can be displayed or hidden individually on each page. For related settings, please refer to the Single Page Options section.

### 5.7 Typography

Please go to Appearance > Customizer > Typography to customize font options for text.

- Heading
- Subheading
- Text
- Blog
- Secondary
- Widget Title
- Button Text
- Menu

#### How to add Adobe Fonts to your website

1. Assuming you already have a valid Adobe subscription, now you can start by browsing the library of Adobe Fonts. When you find a font you like, click the `</>` button to add the family to a web project.
   Add a font to a web project
   You can also click on the font name to open the family page and see all of the font weights and styles that are available to use. Then click `</>` Add to Web Project at the top of the page to add the family to a web project.
   Add a font to a web project
2. In the Add fonts to a Web Project window, you'll name your web project and decide which fonts should be included.
   Add fonts to a Web Project
   You'll be able to make changes to the project settings from the My Adobe Fonts page later, too.
3. Then please click the Edit Project button.
   Edit the Web Project
   Find the Project ID:
   Get the Project ID
4. Please copy the Project ID, and paste it to your website Dashboard > CozyStay Dashboard > Custom Font > Adobe Fonts > Adobe Project (TypeKit) ID, and then click the Sync button.
   Add the Project ID to your website
   Then wait until the Sync result message appears.
   Fonts added.
5. Then, you will find the Adobe Fonts you added when customizing Typography in the Customizer.
   Use Adobe Fonts in the Customizer.
   And you will also find them when editing Typography with Elementor.
   Use Adobe Fonts with Elementor.

#### How to upload custom fonts to your website

Before uploading your custom fonts, it is necessary to prepare .woff and/or .woff2 files of the fonts. If you have a custom font file in another format, such as .ttf, please convert it to .woff and .woff2 using an online conversion tool, for example, you can use this free tool: CloudConvert.

1. On your website dashboard, please navigate to CozyStay Dashboard > Custom Font > Custom Fonts, then enter a font name, select the font weight, and then upload the font files. You can add more fonts, or remove fonts. Please click the Save Changes button.
   Upload your custom font files.
2. Then, you will find the Custom Fonts you added when customizing Typography in the Customizer.
   Use the custom fonts.
   And you will also find them when editing Typography with Elementor.
   Use the custom fonts with Elementor.

### 5.8 Instagram

#### Instagram General Settings

You can add your Instagram feed on your website. Please note: your Instagram account needs to be public to show feed on your site.

Please go to Appearance > Customizer > General > Instagram.

#### Set up your Instagram

Since June 2020, it is required to add the Instagram Access Token to connect your website with your Instagram account before you can display the Instagram feed on your website.

Please follow the guide below to connect your website with your Instagram account:

1. Install a third party plugin: "Smash Balloon Social Photo Feed". Please install and activate this plugin Smash Balloon Social Photo Feed (Formerly "Smash Balloon Instagram Feed").
2. Connect your website with your Instagram account. Please go to your WordPress dashboard, find "Instagram Feed" in the sidebar. Then please click on the Add New button (as shown in the screenshot below) to connect your website with your Instagram account. After clicking the button, please follow the instructions displayed to operate. It will guide you connect your Instagram account and create a new feed.
   Connect your website with your Instagram account, and create new feeds (Smash Balloon v6.x updated interface).
3. Done.
4. You can create multiple feeds and display them in different places.

Now you can display your Instagram feed on your website.

- Footer Fullwidth Instagram Feed - Please go to Appearance > Customizer > Site Footer > Instagram, enable the feature and choose a feed from the dropdown list.
- Instagram Feed in the sidebar - Please go to Dashboard > Appearance > Widgets, find CozyStay Instagram widget and add it to the sidebar, then you can select a feed you've created.
- Adding Instagram Feed with Elementor - When you edit a page/post/custom block by using Elementor, please find CozyStay Elements > Instagram widget, add it to the content, and then select a feed you've created.

"Why do I need to install this third-party plugin?"

In order to resolve this Instagram connection issue, you need to add your Instagram Token to your website. Since Instagram API made changes frequently, we use this third party plugin "Smash Balloon Social Photo Feed" to manage Instagram Token. This is a plugin specifically made for Instagram feed, which is stable and frequently updated. Please keep it activated so that it can connect your website with your Instagram account.

#### Instagram Cache

By default, the Instagram cache will exist for up to 2 hours, which means that if your Instagram has just added some new photos, those photos will not be shown on your website until the cache expires. In some cases, you may like to manually clear the cache. Please open your WordPress Customizer, go to General > Instagram, find the “Clear Instagram Cache” option, and click the “Clear Cache” button.

#### Enable AJAX

If you use any caching plugin on your site, you may find that sometimes your Instagram photos stop updating, especially if you haven’t updated your site content for a while, such as posting a new article. This is because the Instagram feature uses PHP code to render content by default. When the cache plugin works, the code of the Instagram feature may not run.

To avoid this problem, please open your WordPress Customizer, go to General > Instagram, find the “Load Instagram pictures dynamically with AJAX” option, tick the box to enable this option.

#### Common Problem with Instagram

Instagram feed cannot be displayed on your website?

Please check by following the steps below:

1. Please check whether the required plugin "CozyStay Core" is installed and activated.
2. If you update the theme, please make sure you also update the required plugin "CozyStay Core".
3. IMPORTANT! Please connect your website with your Instagram account. Click here for the detailed instructions.
4. Please check if you have enabled the "Instagram" feed in your site footer.
5. Please make sure your Instagram account is public.

### 5.8 Yoast SEO Breadcrumbs

You can display the Yoast SEO breadcrumbs on the single post page. Breadcrumbs are a way to help your users better navigate your site and its structure. Additionally, they can appear on Google and provide a better user experience.

Please note: this feature is provided by the third party plugin Yoast SEO. If you have any questions or problems while using this feature, please contact Yoast SEO Support for further help.

1. Please install and activate the third party plugin Yoast SEO.
2. On your website dashboard, please navigate to Yoast SEO > Settings > Advanced > Breadcrumbs.
3. Scroll down to the bottom of the screen and toggle the switch behind “Enable breadcrumbs for your theme”.
4. After enabling this feature, Yoast SEO will show the Breadcrumbs as JSON-LD in the source code of each page/post. It will display in Google search results for better SEO. However, when visitors browse your website, they won’t see the breadcrumbs (but this will not affect your website SEO).
5. This step is actually optional, and this is the feature provided by our theme. After you enable the Breadcrumbs in Yoast SEO settings, if you also want to display the breadcrumbs on the pages of your website, please open the WordPress customizer and navigate to Blog > Single Post > Display Yoast SEO Breadcrumb to enable Breadcrumbs.

### 5.10 Ads

- Manual Ads
- Google AdSense Auto Ads

#### Manual Ads

CozyStay provides several places for manually inserting ads.

- Sidebar
  - To add an ad banner (image with link) into the sidebar, please edit the "Widgets", add Image widget.
  - To add ad code (e.g. Google AdSense), please edit the "Widgets", add Custom HTML widget and insert code in this widget.
- Page/Post Content - Add the ad banner image, or copy & paste the ad code.

#### Google AdSense Auto Ads

If you are using Google AdSense Auto Ads, Google will automatically place ads where they’re likely to perform well. More information about this feature can be found here: About Auto ads.

## 6. Elementor Related

### 6.1 Elementor General Settings

Before editing any page/post/header/custom block with Elementor, please navigate to your website dashboard > Elementor > Settings. And please make sure you have ticked the following checkboxes:

- Post Type
  - Pages
  - Custom Blocks
  - Header Builder
  - Rooms
  - If you'd like to use Elementor to edit single posts, please also tick "Posts".
- Disable Default Colors
- Disable Default Fonts

Elementor General Settings

### 6.2 Header Builder

Please make sure you have installed and activated the following plugins:

- CozyStay Core
- Elementor

Then, please navigate to Dashboard > Header Builder. Please create a new site header, and edit it with Elementor.

After that, please open the Customizer and navigate to Site Header > Header > Custom Header, and then select the site header you just created from the dropdown list.

Table of Content:

- Creating a new site header
- How to set up a transparent overlap site header
- How to set up a sticky site header

#### Creating a new site header

1. After installing and activating CozyStay Core & Elementor, please navigate to Dashboard > Header Builder. There you can see the list of all the site header created. You can create, delete, duplicate, and edit the site headers. To set one of them to be the global site header, please open the WordPress customizer and navigate to Site Header > Header.
   Manage all site headers
2. After the initial installation of the theme, if you did not import the demo, there will be a "Sample Site Header" on this page. It will help you work quickly. You can edit this header directly, or copy one and edit it, or simply create a brand new one.
   Sample Site Header
3. When editing a site header with Elementor, in the left sidebar, you will find CozyStay Elements. Here you can find common elements in the site header of a website, such as Site Logo, Navigation Menu, Mini Cart, etc.
   Edit a new site header with Elementor

#### How to set up a transparent overlap site header

1. When editing a site header, click the Gear icon in the left sidebar, and then you will find CozyStay Site Header Settings, enable overlap header.
   Enable overlap header
2. If you want the header to have a transparent background, just don't add a background color to sections and columns.
3. If the site header is to be displayed on a dark background (for example, the hero section below), you may want the text to be white. Select each Column, then navigate to Style Tab > [CozyStay] Color Scheme, set to Dark, the color of the elements in that column will change to white.
   Set Column Color Scheme
4. If you site's default color scheme is set to Light, now you probably won't be able to see any elements in the editor. In the upper right corner of the editor you can find Color Mode Simulator, click DARK and the editor background will turn black so you can see what's on the page. The Color Mode Simulator only works in the editor, it will not affect the page in the front-end.
   Color Mode Simulator in Elementor Editor

#### How to set up a sticky site header

1. Please open the WordPress Customizer and navigate to Site Header > Header, find Sticky Header option, and choose Always sticky or Sticky when scroll up.
2. And then find Select Sticky Header option and select a header from the dropdown to be the sticky header.
   Set up a sticky site header
3. The sticky site header can be the same as the normal site header, or you can create a separate site header to use as the sticky header, so that the sticky site header can have a different background color or even different content.

### 6.3 Custom Blocks

Please make sure you have installed and activated the following plugins:

- CozyStay Core
- Elementor

Then, please navigate to Dashboard > Custom Blocks. Please create a new item, and edit it with Elementor.

The Custom Blocks can be used in many different places.

#### Site Footer

After creating a custom block, please open the Customizer and navigate to Site Footer > Footer Main, and then select the site footer you just created from the dropdown list.

#### The Section Before Site Footer

You can set another Custom Blocks to show before the site footer section on every page of the site. Please open the Customizer and navigate to Site Footer > Before Footer, and then select a custom block.

#### Mega Menu

After you create a custom block, if you want to display it as a mega menu of one menu item of your website's Primary Menu (see Menu Locations), please follow the detailed instructions in this section of the documentation.

#### Custom Mobile Menu

1. Go to Dashboard > Custom Blocks, create a new custom block and name it "Mobile Menu" (or any other name you like).
   Manage Custom Blocks
2. Please edit the custom block with Elementor. You can add any elements/widgets inside.
   Editing your custom mobile menu
3. Then, please open the Customizer > Site Header > Fullscreen/Mobile Menu, then select the "Mobile Menu" custom block you've created. (Click the screenshot below to see the larger one.)
   Select your custom mobile menu
4. You can change more options, such as Entrance Animation, Width, etc.

#### Popup Box

The theme provides 2 types of popup box:

- Automatic popup: You can set whether the page will pop up immediately after opening or after a period of time (for example, after 5 seconds, after 10 seconds, etc.)
- Popup after button click

For these two popup methods, the content in the popup box comes from Custom Blocks.

1. How to enable the Automatic popup:

Please open the Customizer > General > Popup Box, then you can enable the feature and select a Custom Block to display as the popup window's content.

2. How to enable the Popup after button click:

When editing a page/post/site header/custom block with Elementor, please add a CozyStay Button element to the content, and then you will find the Popup Box options. Please enable the feature and select a custom block.

Manage Custom Blocks

### 6.4 Elementor Elements/Widgets

CozyStay theme extends Elementor's original functionality to provide more comprehensive tools for restaurant websites. When editing any page or post with Elementor, you will find 33 CozyStay Elements.

CozyStay Elements

1. Button - Can change the button's Style, Shape, Size, Color, and enable the Popup Box.
2. Section Title - Including Subtitle, Title, Text, and a Button.
3. Circle Button - Add a special circle-shape button.
4. Call to Action
5. Info Box
6. Image Gallery
7. Fancy Card
8. Reservation Filter - The search filter for finding a room by check-in/out date, number of rooms/guests.
9. Rooms - Display rooms list.
10. Social Menu - Display your social menu. How to setup your social menu?
11. Site Logo - Display the default logo image you uploaded via the Customizer > Site Identity, and it will be linked to your site's homepage automatically. You can choose to use another image when editing this element.
12. Testimonials
13. Block Links
14. List
15. Instagram
16. Count Down
17. Team Member
18. Divider
19. Vertical Divider
20. Mobile Menu Toggle
21. Navigation Menu
22. Search
23. Tabs - Each tab content can be simple text, or a custom block.
24. Blog
25. Slider - The content of each slide is a selected custom block.
26. Food Menu - When adding food menu titles, if the title is long, you can add `<br>` to wrap the text. (New feature added in version 1.2.0.)
    In HTML, the `<br>` element creates a line break. You can add it wherever you want text to end on the current line and resume on the next.
27. OpenTable Form
28. Food Card
29. Contact Form 7 - The plugin Contact Form 7 is required.
30. MailChimp for WP - The plugin MailChimp for WordPress is required.
31. Mini Cart - The plugin WooCommerce is required.
32. Products - The plugin WooCommerce is required.
33. Video Block - Add a video play button, click to popup a window and play the selected video.

### 6.5 CozyStay Library

To save you time, we have created our own library of pre-made page templates and blocks that can be added to your pages with one click. All of these elements are responsive and can be used anywhere on your website.

When editing a page/post with Elementor, please open the CozyStay Templates library and select the template you need and insert it to your content.

Open CozyStay Library
Preview and insert pre-made templates

Once templates are added to your page, they may look a little bit different because their styles depend on your website settings such as fonts and colors, page width, current page template, and more.

### 6.6 CozyStay Extra Features for Elementor

CozyStay provides some extra options when using Elementor.

Table of contents:

- Section - Stretch Section to Fullwidth
- Section - Background Parallax
- Column - Color Scheme
- Column - Switching Column Orders Vertically on mobile view

#### Section - Stretch Section to Fullwidth

1. Section Content Width - CozyStay Section Fullwidth

When editing a section, please find [CozyStay Layout] > Stretch Section to Full Width, enable it, the section will be stretched to the same width as the screen, while the content inside still has a padding around.

Section Content Width - CozyStay Section Fullwidth

2. Section Content Width - Fullwidth

When a Section's Content Width is set to Fullwidth, the section will be stretched to the same width as the screen. There is no padding around this section's content.

Section Content Width - Fullwidth

3. Section Content Width - Boxed

When a Section's Content Width is set to Boxed, the section has a padding around.

Section Content Width - Boxed

#### Section - Background Parallax

When editing a section, please navigate to the Style Tab > [CozyStay Animation], and then you can enable Parallax on Scroll animation.

Y axis translation - Controls the displacement of the background on the y-axis (longitudinal), the larger the value, the greater the background offset.

Please note: the section need a background image/video/slideshow to see the parallax effect.

Section - Background Parallax Animation on Scroll

#### Column - Color Scheme

When editing a column, you can set its Color Scheme.

1. For example, your site's global color scheme is set to Light, and you want to change one column to Dark Color Scheme. So you change the column's background color to dark, and now you will find that the content (text or/and icons, etc.) cannot be seen clearly because they are also dark. The quick solution is the change the column's color scheme: please find [CozyStay] Color Scheme.
   Column - Color Scheme
2. There are 3 options:
   - Inherit - Inherit your global color mode settings. When changing the global color mode, the color mode of the column will also change.
   - Light - Change to Light Color Mode. It does NOT affect the background setting for the column, but the content in the column will change to dark so that it can be seen on a light background. When changing the global color mode, the color mode of the column does not change.
   - Dark - Change to Dark Color Mode. It does NOT affect the background setting for the column, but the content in the column will change to white (or light grey) so that it can be seen on a dark background. When changing the global color mode, the color mode of the column does not change.
   Column - Color Scheme Options
3. Please note: If the color of an element in this column is changed, for example, you change the color of an icon to blue, then changing the color scheme of this column will not affect it, the icon color will always be blue.

#### Column - Switching Column Orders Vertically on mobile view

If you want to simply reverses the ordering of columns in a section on tablet/mobile view, go to Section Setting > Advanced > Responsive > Reverse Columns and set it to Yes.

But if there are multiple columns in this section and you want to be more free to adjust their vertical order on mobile devices, for example, put the second column at the front, followed by the first column, the third column, the fourth column, then, please edit the COLUMN > Style Tab > [CozyStay] Color Order.

Switching Column Orders Vertically on mobile view

## 7. Menu

### 7.1 Manage Your Menus

CozyStay theme supports 3 menu locations:

- Primary Menu - supports at most level 3 menu (Parent Menu > Sub Menu > Sub Menu)
- Social Menu - Level 1 Menu (No sub menu)
- Footer Bottom Menu - Level 1 Menu (No sub menu)

To manage site menus, we need to locate the WordPress Menus panel.

1. On your website admin panel, go to Appearance > Menus.
2. You will find there are 2 tabs: Edit Menus & Manage Locations. On the Edit Menus tab, you can create menus and add items into it. On the Manage Locations tab, you can select which menu appears in each location.

And you can also manage menus in the customizer (Appearance > Customize > Menus).

For more details about WordPress Menu, please click the link to read the WordPress Menu User Guide: https://codex.wordpress.org/WordPress_Menu_User_Guide

#### To open a menu item in a new tab:

When editing a menu item, check the box of "Open link in a new tab".

Open link in a new tab.

If you can't find the option, it is most likely hidden by default. Please scroll up to the top of the screen, and click the Screen Options, then make sure the Link Target box is checked.

Enable Link Target Option

### 7.2 Primary Menu

The Primary Menu will be displayed in the default site header & default mobile menu. If you use the Header Builder to create a site header, please add Navigation Menu widget and select an existing menu.

1. On your website dashboard, go to Appearance > Menus > Edit Menus.
2. Create a new menu. Give it a name, for example, "Main Menu". Then click on the "Create Menu" button. And add some items into it.
3. Find "Menu Settings" option > "Theme locations", check the box before "Primary Menu".
4. Click on "Save Menu" button.

The primary menu is at most 3-level-deep (Parent Menu > Sub Menu > Sub Menu).

And you can also manage your primary menu in the customizer (Appearance > Customize > Menus > find the Primary Menu).

Manage Primary Menu in customizer

### 7.3 Social Menu

The Social Menu can be used in different places:

- In the sidebar - CozyStay Social widget;
- In the sidebar - CozyStay Profile widget (after checking the "Display Social Icons" option);
- In the mobile menu;
- In the site header - please use the Header Builder;
- In the site footer;
- In the content area - Please use Elementor editor, and select Social Menu widget.

Please follow the instructions below to create your social menu:

1. On your website dashboard, go to Appearance > Menus > Edit Menus.
2. Create a new menu. Give it a name, for example, "Social Menu". Then click on the "Create Menu" button.
3. Find "Custom Links" on the left. Enter the link of your social media site, for example, "https://twitter.com/LoftOcean". And you can also enter some text into "Link Text" field, it's optional, and you can enter any text here. Just need to give a correct URL. Click "Add to Menu" button.
4. Repeat to enter your other social media sites' links.
5. Find "Menu Settings" option > "Theme locations", check the box before "Social Menu".
6. Click on "Save Menu" button.

Please see the screenshot of editing the social menu as reference:

Manage Social Menu

Now your social menu is ready to use.

And you can also manage social menu in the customizer (Appearance > Customize > Menus > find your Social Menu).

Manage Social Menu in customizer

#### Open the social icon link in a new tab when click

1. When create/edit a menu item, tick the box before “Open link in a new tab”.
2. If you can't find the option, it is most likely hidden by default. Please scroll up to the top of the screen, and click the Screen Options, then make sure the Link Target box is checked.
3. Click on “Save menu” button to save the changes. Done.

Open the social icon link in a new tab
Open the social icon link in a new tab

### 7.4 Mega Menu

What is Mega Menu?

"A mega menu is typically defined as a drop down interface that is triggered by the user hovering over a link or defined area. This drop down usually shows all options in one main, mega-panel and oftentimes groups related topics into categories."

In short, it is a complex drop down menu in a navigation bar.

In CozyStay theme, the Primary Menu supports mega menu.

1. When editing your Primary Menu, click the small triangle icon next to a menu item, and you can find the option: Dropdown Displays a Mega Menu. Please enable it.
2. Then you can select a Custom Block from the list, and set the mega menu's width and color scheme.
   Enable mega menu for a menu item
3. For example, we created a Custom Block called "Food Menu Dropdown",
   It looked like this:
   After we set it as the mega menu of one item inside of the primary menu, it looked like this on the website:

## 8. Archive Pages

### 8.1 Posts General Options

Please go to Customizer > Blog > Blog General. There you can:

- Change the text showing on the "read more" buttons.
- Choose a Pagination Style for posts archive - there are 4 options:
  - Next/Prev Links
  - With Page Numbers
  - Load More Button
  - Infinite Scroll
- Enable the Featured Date Label for Blog list.
- Change the Post Excerpt Length for each posts layout.

### 8.2 Static Blog Page

In your site admin panel, go to Settings > Reading panel, find the option Front page displays, choose A static page. In the drop down menu for Posts page select a page, for example, "Blog".

The page assigned as the blog page (posts page) is the Static Blog Page.

Front page - Static Front Page

To customize the layout of the static blog page, please go to Customizer > Blog > Blog Page. There you can:

- Choose the sidebar layout
- Select a Posts Layout
- Choose to show or hide post excerpt
- Choose to show or hide "Read More" button.
- Display selected post meta
- Decide the number of Posts displayed Per Page.

### 8.3 Category

#### Edit a category

Go to Posts > Categories, when adding a new category or edit an existing one, you can add a Category Image for this category. This image will be used in the following situations:

- Page header background image of the category archive page.
- Custom Widget: CozyStay Category widget.

Category Image

### 8.4 Author Info

The author information will show:

- At the top of Author Archive page
- After single post content (the author's biographical info need to have some content)

Author information includes the author profile picture, biographical info and Social Media Icons.

#### Where to find the Author Page?

Author pages are Archive pages. They are not static pages that can be found in the "All Pages" list on your website. When you add a new user to the website, WordPress will automatically generate the page for this user (author). It's the same as the "category" or "tag" archive page.

To find an archive page of an author on your website, please go to your WordPress dashboard > "Users" > "All Users", you will find all users on this website. Hover your cursor over the row and then click on "View" link, then the archive page of this author will display.

Find Author Archive

To add the author archive page to your menu, please copy the page URL in the browser address bar, then add it as a "Custom Link" to your menu.

Add author archive page to menu.

#### Edit Author Bio & Social Icons

To edit author biographical info and Social Media Icons, go to your site dashboard > Users > All Users, find the user you are going to edit, click to open the Edit User page, there you can edit the biographical info.

Author Biographical Info & Social Media Icons

#### Edit Author Profile Picture

To add or edit the author profile picture, please visit https://en.gravatar.com/ for more information.

#### Hide Author Info Box on Single Post

To hide the author info box after single post content, please go to Customizer > Blog > Single Post > Post Footer Section > Display Author Info Box, then uncheck the box.

## 9. Posts

### 9.1 General Single Post Options

Please go to Customizer > Blog > Single Post, there you can set the default post settings for all single posts.

Options:

- Post Header Section - Default background color and text color. The featured image of a post will be used as the background image of the Post Header Section.
- Default Sidebar Layout - You can change the sidebar layout for each post while editing that post. Please see the next sub-chapter Specific Single Post Options.
- Header Meta - Display the selected post meta in the header of the post, including: Author Name/Categories/Publish Date/Comment Counts.
- Post Footer Section - Display the selected post meta in the footer of the post, including:
  - Footer Meta - Post Tags.
  - Social Media Sharing Buttons - Display or hide the Social Media Sharing Button after post content.
  - Display Author Info Box
  - Display Post Pagination - Links to the Previous & Next Posts.
- Related Posts - Display a group of posts, can be posts of the same category/tag/author.

### 9.2 Specific Single Post Options

#### In Gutenberg Editor

The options for a single post: in the Gutenberg editor, click on the "Theme Settings" toggle button. Then click on each setting title to expand the sub panel.

Specific Single Post Options - Gutenberg Editor

#### In Classic Editor

When editing a post, scroll down the page and you can find the "CozyStay Single Post Options" panel.

Specific Single Post Options - Classic Editor

### 9.3 Post Like & Social Sharing

On each single post, you will find the Post Like button and some Social Sharing buttons displayed after the post content.

Visitors can click these buttons to interact with the post: like it, or share it via social media platforms.

You can choose to show or hide these buttons. Please open your WordPress customizer, then go to General > Social Share Buttons > then find the Social Icons option. Tick the checkbox to show a button.

## 10. Pages Settings

CozyStay provides some features specifically for Pages.

Beginner's Guide:

- What is: Page
- What is the Difference Between Posts vs. Pages in WordPress

### 10.1 Choose Page Template

#### In Gutenberg Editor

When editing a page, in the Settings sidebar, please find the "Template" panel. There you can change the page template.

Specific Single Post Options

#### In Classic Editor

When editing a page, please find the "Page Attributes" panel. There you can change the page template.

Change a Single Page Template - in Classic Editor

### 10.2 Single Page Options

When editing a single page, you can find more options for this page.

#### In Gutenberg Editor

In the Gutenberg editor, click on the "Theme Settings" toggle button.

Single Page Options - in Gutenberg Editor

#### In Classic Editor

When editing a page, scroll down the page and you can find the "CozyStay Single Page Options" panel.

Single Page Options - in Classic Editor

The list of the options:

- Site Header - You can hide the site header on this page, or select another site header for this page.
- Page Title Section - You can hide the Page Title Section, or change its size, background color, text color.
- Site Footer - You can choose to hide some elements in the site footer only for this page.

### 10.3 Hide Page Title Section

You can hide the default page title section for a page.

#### In Gutenberg Editor

In the Gutenberg editor, click on the "Theme Settings" toggle button. Then click on "Page Title Section" to expand the sub panel, and then enable the Hide Page Title Section option.

Hide Page Title Section - in Gutenberg Editor

#### In Classic Editor

When editing a page, scroll down the page and you can find the "CozyStay Single Page Options" panel. Then please tick the box of "Hide Page Title Section" option.

Hide Page Title Section - in Classic Editor

## 11. Newsletter Signup Form

### 11.1 Setup Newsletter Signup Form

CozyStay theme supports creating subscribe form with the plugin MailChimp for WordPress. It is one of our recommended plugins when installing the theme.

After installing and activating the plugin, please follow the steps below to setup the plugin:

- Step 1 - Enter MailChimp API
- Step 2 - Create the Newsletter Signup Form
- Step 3 - Select a list for the subscribers

#### Step 1 - Enter MailChimp API

Please make sure you have installed and activated the plugin. Then get to the settings page of the plugin, and enter your MailChimp API key.

Enter MailChimp API

To get your MailChimp API key, you can click on the link "Get your API key here" to get to MailChimp site, log into your MailChimp account, and create a key.

Get MailChimp API Key

After entering your MailChimp API key, you will find the "Your Mailchimp Account" option, and your Mailchimp lists will be displayed.

Connect to your MailChimp account and get your MailChimp lists

#### Step 2 - Create the Newsletter Signup Form

Please go to MC4WP (MailChimp for WP) > Form to create and edit your Newsletter Signup Form. If you have imported a demo of the theme, then you have imported this form, and you can edit the form title and content.

Create or modify the Newsletter Signup Form

You can also choose to copy the code below and paste into the form field, and then change some text to suit your website:

    <div class="fields-container">
      <input type="email" name="EMAIL" placeholder="Your Email Address" required="">
      <input type="submit" value="Subscribe">
    </div>

    <p>
      <label>
        <input name="AGREE_TO_TERMS" type="checkbox" value="1" required=""> I agree to the <a href="#" target="_blank">terms & conditions</a>.
      </label>
    </p>

#### Step 3 - Select a list for the subscribers

When editing a form, please click on the "Settings" tab and find the "Lists this form subscribes to" option, make sure you have selected at least one list.

Select at least one list

### 11.2 Add Newsletter Signup Form in sidebar (widget area)

On your site admin panel, please go to Appearance > Widgets. On the page you can see all of the available widgets are listed at the left side of the page. Find the widget "MailChimp Sign-Up Form", drag and drop it into a widget area, or click on the widget and choose a widget area to put it in.

MailChimp Sign-Up Form Widget

### 11.3 Add Newsletter Signup Form to Content

You can add the newsletter signup form to the content of any page.

Please edit a page with Elementor, then please find CozyStay Elements and choose MailChimp for WordPress. Add this widget to the content, and then select a form from the drop down list.

### 11.4 Mailchimp for WordPress Documentation

When you encounter problems when setting up or using this plugin, you may like to check Mailchimp for WordPress Knowledge Base.

## 12. WooCommerce

### 12.1 Installation & Setup

#### Install WooCommerce

First of all, you need to install and activate the free plugin WooCommerce. Please read WooCommerce official documentation to know how to install and use this plugin.

#### Set up the Shop page

Upon activating the plugin, you are prompted with a Setup Wizard. We strongly advise following these steps, as it takes you through initial setup.

When finishing setup, WooCommerce creates the following 4 new pages:

1. Shop – No content required.
2. Cart – Contains [woocommerce_cart] shortcode and shows the cart contents
3. Checkout – Contains [woocommerce_checkout] shortcode and shows information such as shipping and payment options
4. My Account – Contains [woocommerce_my_account] shortcode and shows each customer information related to their account, orders, etc.

If you only need to use WooCommerce for payment and order management in the room reservation system, then you don't need to do anything extra on the "shop" page. However, if you also need an online store to sell some other products, such as ski equipment, tents, package vouchers for hotel spas, etc., then you may like to check the following content:

#### If you want to set the Shop page to another page:

To change the setting of the Shop page (the products index page), on your site dashboard, please go to WooCommerce > Settings > Products tab > Display tab, there you can find the option Shop Page, select what page you want to be the default shop page (you can choose the shop page created by WooCommerce, or create a new page and choose it). Please check WooCommerce official documentation Configuring WooCommerce Settings about this part.

#### Import WooCommerce Dummy Content

If you need an online store to sell some products, such as ski equipment, tents, package vouchers for hotel spas, etc., you can add products from scratch or import some dummy data.

Right after installing WooCommerce you may find you have an empty store. There are no products, orders, reviews, and more by default. You can start to create your own products, or perhaps you’d like to see what sample orders and products look like, then you can choose to import some dummy content. Please check this article Importing WooCommerce Dummy Data to know details.

#### Setup your product image size

Product Images settings can be found under the Customizer, in WooCommerce > Product Images:

Product Image Size

And after changing image sizes, please don't forget to regenerate your thumbnails.

Blurry Product Images?
Please read this article to know how to Fixing Blurry Product Images.

### 12.2 Shop Customization

After you have set up your online store and created some products, you can tweak the layout of the shop index page and single product page via WordPress customizer. Please go to Customizer > WooCommerce to customize your shop pages.

## 13. Rooms

### 13.1 Create a Room

How to create a new room:

1. On your website dashboard, please navigate to Rooms > Add New.
   Add a new room
2. Enter a title for the room.
3. In the text editor below the room title, you can add some text and images to introduce the room. Alternatively, you can use Elementor to edit the main content of the room.
4. This is optional: Below the text editor, you will find the Excerpt box. This is a short summary of the room that will be displayed in the Room List. If Excerpt is empty, WordPress automatically creates an excerpt using the first 55 words of the post.
5. Below Excerpt box, you will find Room Settings. We will introduce each setting in the following sub chapter.
6. Featured Image - On the right side of the page, you will find the Featured Image option. Please upload an image or select one from the Media Library and set it as the featured image of the room. It will be used as the cover/top image on the single room page, as well as the room's thumbnail in the Rooms List. So please don't leave it blank.

### 13.2 Basic Room Settings

In the Room Settings box, you will find the following options:

### Room General

- Subtitle
- Label - The label will be displayed on the room's thumbnail in the Rooms List.
- Room Type - Add the room to a Room Type and then you can use the room type to select and display some rooms. If you don't see this option here, then please create some room types first (via Your website dashboard > Rooms > Room Type).
- Number of Rooms - Number of available rooms for booking. This is a default value. If you'd like to change the availability for some specific days, please navigate to Room Settings > Availability.

### Single Room Page Layout

- Page Top Section - Top Image / Top Gallery 1 / Top Gallery 2 / Hide.
- Room Booking Form - Right / Left / Hide. You can choose to hide the theme built-in room booking form if you want to direct your visitors to an external website for room booking.

### Price & Capacity

- Regular Price (Per Night) - Add the regular price per night.
- Min People
- Max People
- Occupancy Based - If you would like to charge per person, please tick this option. Then you can add:
  - Adult Price (Per Person)
  - Children Price (Per Person)
- Set Weekend Pricing - New Feature Added in v1.1
  - If enabled, the weekend price will replace the base price every Friday and Saturday.
  - You can add a Weekend Prices Per Night / Per Adult / Per Child

### Room Facilities

The selected room facilities will be displayed at the top of the room introduction page and in the room list (displayed under the room title) in the form of "icon with text".

- Room Size - Add the value of the room size, then choose in Square Meters or Square Feet.
- Number of Guests
- Number of Beds
- Number of Bathrooms
- WIFI
- Air Conditioning
- The above 6 are created automatically by the theme. You can create more facilities via your website dashboard > Rooms > Room Facility.

### Room Availability

Here you can select the specific date(s) on the calendar to change the room price and the number of available rooms.

### Extra Services

Here you can choose some "extra services", which will be displayed in the booking form of this room. If the user checks one (some) of the items, the corresponding price(s) will be included in the order. To create some extra services, please navigate to your website dashboard > Rooms > Extra Services.

### 13.3 Room Booking Rules

New Feature Added in v1.1

Please navigate to your website dashboard > Rooms > Booking Rules, there you can create some booking rule-sets and apply them to selected rooms. Following are the options for each booking rule set:

- Title - Name the rule-set. For example, "High Season".
- Time Range - Set the Time Range for the rule to take effect, for example, from September 10, 2023 to December 31, 2023. You can also choose to make a rule permanent without a time limit.
- Stay Length - Minimum & Maximum Nights
- Stay Length by Check-in Day - Set the minimum and maximum stay time according to the day of the week of the check-in day (Mondays / Tuesdays / Wednesday / ...)
- No Check-in and No Check-out Days Settings - Set which days of the week guests cannot check in and which days guests cannot check out.
- How far in advance can guests book? - Minimum Advance Reservation / Maximum Advance Reservation.
- Apply the Rule-set To selected rooms.

When multiple booking rules are applied to a room, please note:

- There can only be at most one booking rule with no time limit at the same time;
- When there are multiple booking rules with time range restrictions, please ensure that the time ranges of these booking rules do not overlap, otherwise calculation conflicts will occur.

How do booking rule sets work? We will use the following scenarios as examples:

A new booking rule-set is created, which including:

- Title - "High Season Booking Rules"
- Time Range - From December 1, 2023 to December 31, 2023
- Stay Length - Min Stay: 3 nights, Max Stay: 7 nights
- Stay Length by Check-in Day - Not Set
- No Check-in and No Check-out Days Settings - No Check-in: Mondays, No Check-out: Fridays
- How far in advance can guests book? - Minimum Advance Reservation: 3 Days, Maximum Advance Reservation: Not Set

And then apply this booking rule-set to some rooms.

- Stay Length - When guests check in on any day within this time range, they are required to stay for at least 3 nights and no more than 7 nights. Even if the check-in time is the last day within this time range.
- No Check-in Days - All Mondays within this time frame are closed for check-in.
- No Check-out Days - All Fridays within this time frame are closed for check-out.
- Minimum Advance Reservation: 3 Days - When booking a room, as long as the selected check-in date is within this time range, it needs to be booked at least three days in advance. Even if the check-in time is the last day in the time range.

### 13.4 Room Price Rules

New Feature Added in v1.1

Please navigate to your website dashboard > Rooms > Flexible Price Rules, there you can create some price rule-sets and apply them to selected rooms. Following are the options for each price rule set:

- Title - Name the rule-set. For example, "Holiday Week Price".
- Time Range - Set the Time Range for the rule to take effect, for example, from September 10, 2023 to December 31, 2023. You can also choose to make a rule permanent without a time limit.
- Special Price - This special price will be the new base price for the room for that time frame. Special Price is based on the original price of the room and are scaled up or down by the percentage set.
- Long Stay Discounts - When guests check in on any day within the time range:
  - Weekly Discount - Discount for consecutive stays of 7 days or more.
  - Monthly Discount - Discount for consecutive stays of 28 days or more.
- Early Bird Discount - Offer a discount for early bookings.
- Last-Minute Discount - Offer a discount for bookings close to arrival.
- Apply the Rule-set To selected rooms.

When multiple price rules are applied to a room, please note:

- There can only be at most one price rule with no time limit at the same time;
- When there are multiple price rules with time range restrictions, please ensure that the time ranges of these price rules do not overlap, otherwise calculation conflicts will occur.

How do price rule sets work? We will use the following scenarios as examples:

Example #1: A new price rule-set is created, which including:

- Title - "Low Season Discount"
- Time Range - From September 1, 2023 to September 30, 2023
- Special Price - Decrease 10% (10% off)
- Long Stay Discounts - Weekly discount 15% off. That is, when the room stays for more than 7 consecutive nights (including 7 nights), enjoy a 15% discount on the total room price.
- Early Bird Discount - No
- Last-Minute Discount - No

And then apply this price rule-set to 2 rooms: Room A, and Room B.

- Room A - Room A is originally priced at $200 per night. After applying the "Low Season Discount" price rule for Room A, from September 1, 2023 to September 30, 2023, the nightly price of Room A will change from $200 to $180.
  - If the guest books room A for 5 consecutive nights during this period, the total cost of the room is: $180 x 5 = $900
  - If the guest books room A for 10 consecutive nights during this period, the guest will enjoy a 15% discount on the total price of the room because of the "Long Stay Discounts". So, the total cost of the room is: $1800 - $1800 x 15% = $1530
  - In addition, if the customer also orders "Extra Services" worth $200, the total order price would be: $1530 + $200 = $1730. Because the Flexible Price Rules only apply to room billing, extra services are not included there.
  - If you want to give guests a discount on the total price of the entire order (including room charges and additional service fees), you can use WooCommerce's discount coupon feature.
- Room A Special Case #1
  - A guest has reserved Room A from September 27, 2023 to October 4, 2023. 7 nights in a row. 4 days in September and 3 days in October. The room rate in September is $180 per night (10% off), while the room rate in October is $200 per night (discount ends). The total cost of the room is therefore: $180 x 4 + $200 x 3 = $1320.
  - Because the check-in time is September 27, 2023, and the consecutive check-in time meets the conditions of at least seven days, the guest can also enjoy the long-stay discount. So, the total cost of the room is: $1320 - $1320 x 15% = $1122
  - Please note that the long-stay discount at this time is for the total room cost for these seven days, not just for the room costs for the four days in September.
- Room A Special Case #2
  - A guest has reserved Room A from August 29, 2023 to Spetember 5, 2023. 7 nights in a row. 3 days in August and 4 days in September. The room rate in September is $180 per night (10% off), while the room rate in August is $200 per night (discount not yet started). The total cost of the room is therefore: $200 x 3 + $180 x 4 = $1320.
  - Since the check-in time is August 29, 2023, which is not within the effective period of the long-stay discount, the guest cannot enjoy the long-stay discount even though the guest has stayed for at least 7 consecutive days.
- Room B - Room B is also originally priced at $200 per night. But unlike room A, room B is priced at $230 per night for weekends (Friday and Saturday).
  After applying the "Low Season Discount" price rule for Room B, from September 1, 2023 to September 30, 2023, the non-weekend nightly price of Room B will be changed from $200 to $180 and the weekend price will be changed from $230 to $207.
  - If a guest books Room B for 5 consecutive nights during this period, including a Friday and a Saturday, the total cost of the room will be: $180 x 3 + $207 x 2 = $954
  - If the guest books B room for 7 consecutive nights (including Friday and Saturday), the total cost of the room is: $180 x 5 + $207 x 2 = $1314. And guests will enjoy a 15% discount on the total room price because of "Long Stay Discounts", so the final cost of the room is: $1314 - $1314 x 15% = $1116.9
  - In addition, if the customer also orders "Extra Services" worth $200, the total order price would be: $1116.9 + $200 = $1316.9. Because the Flexible Price Rules only apply to room billing, extra services are not included there.
  - If you want to give guests a discount on the total price of the entire order (including room charges and additional service fees), you can use WooCommerce's discount coupon feature.

Example #2: A new price rule-set is created, which including:

- Title - "Holiday Price"
- Time Range - From December 1, 2023 to January 31, 2024
- Special Price - Increase 20%
- Long Stay Discounts - Weekly discount 15% off. That is, when the room stays for more than 7 consecutive nights (including 7 nights), enjoy a 15% discount on the total room price.
- Early Bird Discount - No
- Last-Minute Discount - 5% off when booking within 20 days of arrival

And then apply this price rule-set to 1 room: Room C.

- The original price of room C is $300 per night, and the weekend (Friday, Saturday) price is $350 per night.
  After applying the "Holiday Price" price rule for Room C, from December 1, 2023 to January 31, 2024, the non-weekend nightly price of Room C will be changed from $300 to $360 and the weekend price will be changed from $350 to $420.
  - If a guest books Room C for 5 consecutive nights during this period, including a Friday and a Saturday, the total cost of the room will be: $360 x 3 + $420 x 2 = $1920
  - If the guest books C room for 7 consecutive nights (including Friday and Saturday), the total cost of the room in the order is: $360 x 5 + $420 x 2 = $2640. And guests will enjoy a 15% discount on the total room price because of "Long Stay Discounts", and the total cost of the room is: $2640 - $2640 x 15% = $2244
  - If the guest has booked 7 consecutive days and there are only 10 days left before the selected check-in date, in addition to the 15% long stay discount, the guest will also enjoy a 5% discount on the total room price due to the "Last Minute Discount". So the price of the order is: $2640 - $2640 x 15% - $2640 x 5% = $2112
  - In addition, if the customer also orders "Extra Services" worth $200, the total order price would be: $2112 + $200 = $2312. Because the Flexible Price Rules only apply to room billing, extra services are not included there.
  - If you want to give guests a discount on the total price of the entire order (including room charges and additional service fees), you can use WooCommerce's discount coupon feature.

### 13.5 Room List

You can create a new page, and then edit the page with Elementor. In the left panel of the Elementor editor, please find CozyStay Elements > Rooms. Drag it the the content, and then you can select the source (All Rooms / By Room Type / By Room ID), and change the style of the room list.

The Room List can be added to any page or post.

## 14. Item Customization

### 14.1 Not included in item support

Please note: according to ThemeForest Support Policy, Item Customization is not included in item support:

> Item support does not include services to modify or extend the item beyond the original features, style and functionality described on the item page. For customization services that will help you tailor the item to your specific requirements, we recommend contacting the author to see if they privately offer paid customisation services or checking out the great service providers on Envato Studio.

And as we don't provide any customization service, when you need help with item customization, we recommend hire a developer to do the customization work for you.

### 14.2 Additional CSS

Sometimes you might like to add some custom CSS to your site to personalize some elements' styles. In the customizer, please locate to Additional CSS sub section and add your custom CSS code. Like the example showing in the screenshot below:

Add custom CSS to your site

This is a default feature of WordPress since WordPress v4.7. If you can’t find Additional CSS sub section in your customizer, then it means your WordPress version is lower than 4.7, please update your WordPress to the latest version.

And after adding custom CSS code, if you don't see any changes, please clear your site cache and your browser cache, then refresh the pages and check again.

### 14.3 Child Theme

If you are going to write custom code for the theme, please use Child Theme.

A child theme is a theme that inherits the functionality and styling of the parent theme. Child themes are the recommended way of modifying an existing theme.

Please download the whole package of CozyStay theme (not just the installable WordPress theme zip file), unzip it and you will find WordPress Child Theme > CozyStay-child.zip. Install the parent theme first, then install the child theme, and activate the child theme.

Then you can change code or write your own custom styles for the theme in the child theme files. Later when you need to update the theme, just update CozyStay.zip (the parent theme), so your custom code changes will not be overwritten (because they are all in the child theme).

You may like to read more regarding the child themes on official WordPress codex page: https://codex.wordpress.org/Child_Themes.

Please note: Writing custom code for your child theme is related to Item Customization which is not included in the support we could provide. More details can be found here.

### 14.4 Copy the customization made in the parent theme to the child theme

Since WordPress treats the parent theme and the child theme as 2 different themes, based on WordPress logic, it cannot automatically inherit customizer settings.

Therefore, if you need to switch to the child theme after using the parent theme for a while and keep all the customizations made in the parent theme, please follow the steps below.

You can use this plugin Customizer Export/Import to export the customizer settings of the parent theme, and then import the data to the child theme (or vice versa).

Here is an example of exporting the parent theme customizer settings and importing them to the child theme customizer:

1. Please make sure you are currently using the CozyStay parent theme. Then install and activate the plugin Customizer Export/Import.
2. Open the customizer, you will find a new section "Export/Import" in the customizer. Click the "Export" button to export the customizer settings of the CozyStay parent theme. You will get a file called "CozyStay-export.dat".
   Export the customizer settings of the CozyStay parent theme
3. Please close the customizer, and go back to your website dashboard.
4. Now, please switch to (activate) the child theme, then open the customizer, go to "Export/Import" section, and then import the "CozyStay-export.dat" file. Done.
   Import the customizer settings

After switching to the child theme, if you find that menus have disappeared, please reassign the menus to the menu locations.

## 15. Translation

When working with CozyStay theme, you can translate everything to any language, and you can also make a bilingual/multilingual site.

- If you need to translate your site, and your site only needs to use one language, please continue reading this chapter.
- If you are going to make a bilingual/multilingual site, please check the next chapter.

You can use Loco Translate to translate the theme text.

Table of Contents:

- 15.1 Translating Theme with Loco Translate
- 15.2 Use Loco Translate to change some text (instead of translating)

### 15.1 Translating Theme with Loco Translate

You can install this third-party plugin on your website and translate the theme text directly from your website dashboard: Loco Translate.

Please read the plugin's documentation for the detailed user guide:

- Loco Translate - Beginner's guide.
- More Guides and Tutorials.

#### Get started

When using Loco Translate, on your website dashboard, please go to "Loco Translate" > "Themes" > find "CozyStay" (or "CozyStay Child", depending on which theme is activated). Click on "CozyStay" then you will be able to add a new language, or edit the translation of an existing language.

Text has been translated.

#### Choose a location for translations

When "Initializing new translations", please find "Choose a location": you will choose where to save your translation file. (More details can be find here.)

- Custom - Recommended. This is Loco's protected folder under "wp-content/languages/loco/" which is safe from automatic updates. If this folder doesn't exist you may need to create it and ensure it has the correct permissions.
- System - Files saved here can be overwritten by WordPress's own language installer. If you have disabled WordPress automatic translation updates, you can select this option.
- Author - Please do not select this option. If you select this option, your translation file will be saved in the theme folder. Every time you update the theme, all the files in the theme folder will be overwritten, which will cause your translation to be lost.

Choose a location for Loco translated files.

#### "What if I choose the incorrect save location for the translations?"

You can change the location for translations. On the editor screen of a language, please click the "Relocate" tab, there you can change the location, and then click "Move Files".

Relocate your translated files.

#### Translate the strings of the theme

Once on the editor screen you'll see all the strings included in the .pot file of the theme. The basics of the editor should be fairly intuitive. Select the English string at the top and enter your translation in the pane at the bottom. You just need to enter a translation and save it.

Text has been translated.

#### Have questions or problems with Loco Translate?

Please kindly note: Loco Translate is a third-party plugin created and maintained by other authors (not us), when you need help with this plugin, please contact the author of the plugin. This is the support forum for "Loco Translate".

### 15.2 Use Loco Translate to change some text (instead of translating)

You can use Loco Translate to change some text instead of translating it.

For example, if you'd like to change the text of the load more button from "Load More Posts" to "Load More Recipes" (from one English word to another English word), please follow the steps below:

1. Install and activated the third-party plugin: "Loco Translate". You can read this subchapter of the documentation for the basics about this plugin.
2. You can check and confirm the language used on your website by navigating to "Settings" > "General" > "Site Language". For example, our website is not a multilingual website and the main language is "English (United States)".
   Check and confirm the site language.
3. On your website dashboard, please go to "Loco Translate" > "Themes" > find "CozyStay". Click on "CozyStay" then you will be able to add a new language. So we add "English (United States)", and then start translating.
   Create a new language.
4. You can enter a keyword to search. For example, we enter "Load More Posts" and search.
5. Select the source text at the top, and enter your "translation" in the pane at the bottom: "Load More Recipes".
   Change text.
6. Save.
7. You can repeat these steps to change other text.

## 16. Bilingual / Multilingual - Polylang

If you are going to create a bilingual or multilingual website, we recommend using Polylang or WPML.

The differences between these 2 plugins:

- Polylang is a free plugin. WPML is a premium (paid) plugin (and you need Multilingual CMS version).
- If using Polylang, you need to translate theme strings (included in the .pot file) by using Poedit or Loco Translate. If using WPML, all the text can be translated by using WPML.
- When using Polylang, if you need to make your WooCommerce shop to be multilingual, you need to purchase their Polylang for WooCommerce Extension. When using WPML, the feature is already included when you purchasing WPML.
- And there may be some other differences.

In this chapter, we will provide simple explanations and points to explain how to make your WordPress site to be a bilingual/multilingual site when you are using CozyStay theme and the third-party plugin Polylang.

If you want to use WPML, please read the next chapter.

Please note: because Polylang is a third-party plugin, so we will only provide links to this plugin’s official documentation. We will not be able to provide details about how to use this plugin, or provide support service for this plugin.

#### Step 1 – Basic Knowledge

There are several different types of content that need to be translated separately:

- Theme Strings: they are strings written in the theme code. Please continue reading to know more information in Step 2.
- Dynamic content: like posts, pages, categories, and user defined strings. To translate those content, you can use the Polylang plugin. Please continue reading to know more information in Step 3.
- Newsletter Signup Form: Please find the details in Step 4.

Resources of Polylang:

- Polylang Free Version: https://wordpress.org/plugins/polylang/
- Polylang Official Documentation: https://polylang.pro/doc-category/getting-started/
- Polylang FAQ: https://wordpress.org/plugins/polylang/#faq

#### Step 2 – Translate Theme Strings

Theme Strings: they are strings written in the theme code (included in the .pot file), for example, "Join the Conversation" (Comments Section Title) on each single post or page. To translate these strings, please follow this guide: Translating the theme.

Please make sure you have translated all the Theme Strings you need.

Please note: if you have imported demo data, then some strings are entered into the customizer during the demo importing process, then you will need to translate these strings by Polylang. Please see more details in "Step 3 – 2. Translate User Defined Strings".

#### Step 3 – Translate Dynamic Content with Polylang

1. Setup wizard:
   When activating Polylang for the first time, the setup wizard is automatically launched with all the necessary steps to configure more easily a multilingual website. You should follow each step one by one until you reach the “Ready!” step at the end of the setup wizard. Please read this article for details: https://polylang.pro/doc/setup-wizard/.
2. Translate User Defined Strings

   > Polylang allows you to translate user defined strings such as the site title, the tagline, or the widget titles. Moreover themes and plugins can allow you to translate their options here.

   To translate User Defined String, you must use the Strings Translations Table of the Polylang plugin.
   Please read this article: https://polylang.pro/doc/strings-translations/

   There are 2 types of User Defined String:

   - Strings entered with WordPress core features: such as the site title, the tagline, or the widget titles.
   - Strings entered with theme and plugins. Please see more details below:
   Theme Options Strings: They are strings entered in the theme options (customizer). When customizing your site with CozyStay theme, you will be able to enter many custom text in the customizer. To translate any custom text you entered in the customizer you need to use Strings Translations table of the Polylang plugin.
   To locate Strings Translations Table: on your site admin panel > Languages > Strings Translations.
   For example, you can change the text of "Read More" buttons to "Continue Reading", or you can change the related posts section's title "Other Posts You May Enjoy" to any other text like "Read more articles in this category". After you have entered/modified custom text in the customizer, you can find these text shown in the Strings Translations Table.
3. Create Menus
   You have to create one menu per language and save them. Please read this article: https://polylang.pro/doc/create-menus/.
4. About Widgets

   > For all widgets you have now the possibility to choose to display it for all languages (default) or only one language. If you select "All languages" you will have the possibility to translate the title in the Strings translation option.

   Please read this article: https://polylang.pro/doc/widgets/.
   Please note: for custom widget CozyStay Category, you have to create one widget per language, because you have to choose different categories for each language.
5. Translating pages, posts, categories and tags
   Please read this article: https://polylang.pro/doc/translating-pages-posts-categories-and-tags/.
6. Translating Custom Post Types: Including Site Headers and Custom Blocks.
   Please navigate to Languages > Settings, find Custom post types and Taxonomies and click Settings.
   Activate languages and translations for custom post types.
   And then please make sure that you have ticked the checkboxes for Custom Blocks and Header Builder.
   Activate languages and translations for custom post types.
   After that, you can translate the Custom Blocks and Site Headers just like translating pages or posts.

#### Step 4 – Translate Newsletter Signup Form

On your website dashboard, please go to CozyStay Dashboard > Integrations, you will find the MC4WP Multilingual Manager for Polylang. This option will show when Polylang and MC4WP are installed and activated.

- If you are using the premium version of the "MailChimp for WordPress" plugin, you can create multiple forms. Therefore, please create different forms for each language, and then select a different form for each language on this page.
  Choose a form for a language
- If you are using the free version of the "MailChimp for WordPress" plugin, you can only create one form. Then, please click the Translate the Form link to translate this form into another language.
  Translate the form into another language
  You will be redirected to the form edit page. You just need to edit the form title, content and messages into the target language. And save the changes.
  Translate the form into another language #2

## 17. Bilingual / Multilingual - WPML

In this chapter, we will provide some explanations and points to explain how to make your WordPress site to be a bilingual/multilingual site when you are using CozyStay theme and the third-party plugin WPML.

If you would like to know the differences between Polylang and WPML, please check this chapter.

### 17.1 What you will need

- CozyStay theme
- A recent version of WPML, including the WPML Multilingual CMS, WPML String Translation and WPML Media add-ons.

### 17.2 Essential Resources

- WPML's Getting Started Guide will help you in setting up WPML in a few minutes. You will want to refer later to some of its subtopics, such as Language Setup, String Translation, Translating Custom Post Types and etc. We recommend that you keep this guide open while following this tutorial.
- CozyStay's documentation will provide you with all the information needed to set it up.

### 17.3 How to Translate

Table of Contents:

- Step 1 – Getting started
- Step 2 - Translating pages and posts
- Step 3 - Translating post categories and tags
- Step 4 - Translating custom post types
- Step 5 - Translating texts coming from the theme & WordPress Core
- Step 6 - Translating Newsletter Signup Form
- Step 7 - Translating Menus
- Step 8 - Translating widgets
- Step 9 - Language Switcher
- Step 10 - Translating WooCommerce Elements

### Step 1 – Getting started and WPML's Set-up Wizard

1. Install and activate CozyStay theme, the required plugin and recommended plugins (please refer to CozyStay Installation).
2. Install and activate the main WPML components (Please see WPML Getting Started Guide for complete reference):
   - WPML Multilingual CMS (the core plugin)
   - String Translation
   - Media Translation
3. Set up WPML. When you first activate WPML a Setup Wizard will help you specify the essential settings required to prepare your site for multilingual content. Follow the wizard you can:
   - Choose your site’s languages
   - Choose your URL format
   - Register WPML
   - Choose your translation mode (see the next section for more details)

After setting up your site, you can also customize your site’s language switcher, which is added to the footer by default.

#### Translation Mode Options (See details)

You have two options for translating your site: Translate Everything or Translate Some. The WPML setup wizard will try to choose the best option for you depending on how much content is on your site.

- Translate Everything
  All of the site’s main content will be automatically translated into all secondary languages as content is published or updated. Translations can then be reviewed on the front-end and edited by the user (or local translator) if needed.
- Translate Some
  Users can pick and choose what to translate, when to translate it, and who will translate it. This mode allows for content to be translated manually, translated via WPML's Advanced Translation Editor, translated by professional translation services, or even translated by a team of local translators.

### Step 2 - Translating pages and posts

When you have created some pages and posts on your website, you can translate them into other languages.

For example, if you are going to translate a page. On your website dashboard > "Pages" > in the "All Pages" list, you will see these icons (translation controls) in the "Language" column. Or, you will find the "Language" box when editing the page.

List of Pages with translation controls
WPML Language box when editing a page

Click on the "+" button of the language you are about to translate the content to. For example, "German". This creates a new German translation for it. Then enter the content written in German. And publish the page.

If you need to updating the translation of a page or post, please go to "Pages" or "Posts". For the translated pages or posts, the "+" icon will change to a pencil icon. Click on the pencil icon if you need to modify your translation.

Click on the "Pencil" icon to updating the translation

### Step 3 - Translating post categories and tags

#### Translating Post Categories:

1. Navigating to Posts > Categories, as an example we will create a category and name it "Vegan", also upload a category image for it, and click on the Add New Category button. (Please refer to Edit a category.)
2. When editing this category, find the Language box, and click on the "add" link to add the translation of the category.
   Add the translation of the category
3. Fill the Name and Slug fields with the category translation, and also choose the same category image for it, and then click on the Add New Category button.

#### Translating post tags

Translating post tags is just as same as translating categories. The only difference is you only need to enter tag Name and Slug.

#### Taxonomy Translation

You can also translate post categories and tags via WPML Taxonomy Translation.

1. Navigating to WPML > Taxonomy Translation. Select Tags (or Categories) from the Select the taxonomy to translate drop-down menu. Then click on the "+" icon or the pencil icon to translate a tag (or a category).
   Taxonomy Translation
2. The Term Translation box will pop up. Enter the translation and click on "Save" button.
   Term Translation

### Step 4 - Translating custom post types

To translate Custom Post Types: Custom Blocks & Site Headers, please follow the steps below:

1. Navigating to WPML > Settings > Post Types Translation, find Custom Blocks & Header Builder, make sure they are Translatable.
   Custom Post Types Translation
2. Then you can navigate to Header Builder > All Site Headers, click on the "+" button of the language you are about to translate the site header to. For the translated pages or posts, the "+" icon will change to a pencil icon. Click on the pencil icon if you need to modify your translation.
   Custom Post Types - Site Header Translation

### Step 5 - Translating texts coming from the theme & WordPress Core

WPML String Translation allows users to translate texts that are not in posts, pages, and taxonomies. This includes the site’s tagline, general texts in admin screens, widget titles, and many other texts. Therefore, the following texts need to be translated on the String Translation screen. (Read more about WPML String Translation.)

- Theme Strings - They are strings written in the theme code (included in the .pot file), for example, "Join the Conversation" (Comments Section Title) on each single post or page.
- Theme Options Strings - They are strings entered in the theme options (customizer). When customizing your site with CozyStay theme, you will be able to enter many custom text in the customizer. To translate any custom text you entered in the customizer you need to use String Translation screen of WPML.
- Theme Dashboard Strings - The Restaurant Info & Opening Hours added via Cozy.Stay Dashboard.
- Strings entered with WordPress core features - Such as the site title, the tagline, widgets.

By default, WPML doesn’t scan or load these translation files into the database. Because of this, you will not be able to find these strings on the WPML → String Translation page. If you want to translate or edit these strings, you first need to scan the translation files of the related theme or a plugin.

#### 1 - Scanning the theme

To translate texts coming from the theme and plugins, you need to scan them first. Go to the WPML → Theme and plugins localization page and find Strings in the themes box. Select "CozyStay" and click the Scan selected themes for strings button.

Scanning the theme

#### 2 - Translating the texts

Please navigate to WPML > String translation page. Then you can:

- Select "CozyStay" in the Select string within domain dropdown list.
- If you have imported a demo, or you have changed any settings in the customizer, please select "admin_texts_theme_mods_CozyStay" in the Select string within domain dropdown list to find the text added in the customizer.
- Or, you can enter some keywords copied from the texts you want to translate into the Search for: field and search.

For example, let's translate the "Load More Posts" button. The original text is entered in the customizer.

1. Navigate to WPML > String translation. Enter "load more" and search. You will see the search result as shown below, click on the "+" button (or the pencil icon button) of the language you are about to translate (or modify the translation).
   Search for the string
2. Add your translated text. You can save your translation by hitting the Enter or Tab keys on your keyboard or simply clicking out of the window. The Tab key allows you to switch between languages without having to click.
   Translate the string

Useful Links:

- Theme and Plugins Localization
- String Translation

### Step 6 - Translating Newsletter Signup Form

#### 1. Installing an Add-on

Please download and install this add-on: MailChimp for WordPress Multilingual. Please go to WPML and log into your account, then please go to "Download" page to download the MailChimp for WordPress Multilingual add-on. And then upload it to your website, install and activate it just as you would any other WordPress plugin.

#### 2. Translating the form

Please read the WPML's Offical Documentation: MailChimp for WordPress Multilingual.

### Step 7 - Translating Menus

WPML lets you translate WordPress menus and create different menus per language. You can translate menus manually, or have WPML synchronize menu content. Please check Translating Menus for more details.

### Step 8 - Translating widgets

WPML lets you easily translate your Widgets via the String Translation screen. This requires that the WPML String Translation module is installed. The module is available in the Multilingual CMS version.

Besides translating widgets, WPML allows you to display different widgets for different languages.

Useful Links:

- Translating Widgets
- How to Display Different Widgets Per Language

### Step 9 - Language Switcher

A language switcher allows visitors to select the language in which they want to read your content. WPML lets you add a language switcher in different ways: in a menu, as a widget, or in the site’s footer. You can also use it to show links above or below your posts, offering them in other languages.

To add and customize language switchers, go to WPML → Languages in the WordPress dashboard, then you will find the following settings on this page:

- Language switcher options
- Menu language switcher
- Widget language switcher
- Footer language switcher
- Links to translation of posts
- Custom language switchers

WPML - Language Switcher Options

Each language switcher type has its own settings. This allows you full and independent control over what it includes and how it looks. When clicking on the "Pencil" icon, it will show a dialog box with settings for the menu language switcher.

Useful Links:

- Language Switcher Options

### Step 10 - Translating WooCommerce Elements

If you run an online store with WooCommerce on your website, you can also translate your store into multiple languages. WPML comes with the WooCommerce Multilingual addon which allows you to fully translate your online store, and run WooCommerce stores with several languages and currencies.

For the detailed instructions, please read Multilingual and Multi-Currency WooCommerce Sites Made Easy.

Useful Links:

- Multilingual and Multi-Currency WooCommerce Sites Made Easy

### 17.4 Need Help for WPML

If you need help with using WPML with CozyStay theme, please head over to WPML technical forum. Before posting about issues, we recommend that you review this quick checklist:

- Make sure you have the latest versions of the theme and of the WPML plugins, and that they are all activated. These include WPML Multilingual CMS, WPML String Translation and WPML Translation Management.
- Check that the problem does not appear if the WPML plugins are deactivated, and it does appear when only the core WPML plugins are activated.

Please always remember to search and read WPML official documentation for more details about how to use WPML.

## 18. FAQs

- Installation & Demo Importing
  - Theme Installation
  - Demo Importing
  - Can't import a demo?
- Site Header & Logo
  - Uploading Logo Image
  - Setting Up Site Header
  - Using the Header Builder
- Menu Management
  - How to create a menu
  - Setting Up the Social Menu
  - Creating a mega menu
- Other Fonts
  - How to add Adobe Fonts to your website
  - How to upload custom fonts to your website

## 19. Need Our Support?

#### What is Item Support Service?

When you purchasing products from Envato Market, a supported item includes item support for 6 months from the purchase date. During those 6 months, we (as the author of the theme) are available to provide the item support services.

You may like to read more details about What is Item Support?.

#### What's included & What's not included in Item Support?

We can help with:

- Answering questions about how to use the theme
- Answering technical questions about the theme (and included third party assets)
- Help with defects in the theme or included third party assets
- Theme updates to ensure ongoing compatibility and to resolve security vulnerabilities

We cannot help with:

- Item customization
- Installation of the item
- Issues about your web hosting, server environment, or software installed on your machine
- Questions related to third party assets
- Questions related to the basic use of WordPress (We have collected some WordPress Beginner Tutorials, hope this helps.)

Please check ThemeForest Item Support Policy for more details.

Please kindly note: The terms and conditions are set out by Envato exclusively, and every author must follow the rules. These rules are the same for every author and every buyer and we cannot change them selectively. Thank you for understanding.

#### What you should do first before asking your question?

To speed along the support request, please check by following the guide below:

1. Make sure your site is running the latest version of WordPress.
2. Make sure that the CozyStay theme and the required plugin "CozyStay Core" have been updated to the latest version. Some known issues may have been fixed in an update.
3. Update to the latest version of other plugins on your website.
4. Check our Online Documentation first.
5. Disable any other plugins and then check if it fix the issue.
6. If you still cannot find a solution, please open a support ticket at Loft.Ocean Help Center.

#### Submitting a support request

When submitting your support request, please include the following information in as much detail as possible so that we can get more clues about your questions/problems:

- Your website URL
- Which version of the theme you are using
- Detailed description of the issue or the question
- Screenshots of the problem
- Any notices or error messages
- Any other information that you find useful
- Since we have multiple products, please indicate which product your question corresponds to

And please write in English. Thanks!

#### How long does it take for LoftOcean support to reply to your support request?

- We provide support for our customers Monday to Friday: 10 AM to 6 PM (UTC+10).
- Support requests will be processed in the order received. Usually we reply to all requests within 24 hours.
- If it is a weekend, our response time may take 48 hours or more: if you submit a support request on Friday night in our time zone, we won’t be able to see it and start working on it until the next Monday’s business hours.

We will carefully handle every user's support request. When you encounter a problem, please send us the detailed information of the problem. If we do not respond to you immediately, please don't worry, maybe it is just during our non-working hours (night or weekend), or it is because there are other users' requests in the request queue ahead of your requests.

The requests in the queue will be processed one by one. Therefore, when you submit a support request, please be sure to provide as much information as possible so that when we start to process your request, we can have enough information and provide accurate answers instead of asking for other necessary information (this will cause it to take longer to solve the problem for you).

#### Need to renew your support?

If you have less than 6 months remaining on a support item you’re eligible to renew your support. For more information about Item Support renewals, please see Extending and Renewing Item Support.