<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developers &#8211; GoodLayers</title>
	<atom:link href="https://docs.goodlayers.com/category/developers/feed/" rel="self" type="application/rss+xml" />
	<link>https://docs.goodlayers.com</link>
	<description>Documentation</description>
	<lastBuildDate>Wed, 24 Jul 2024 14:56:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Travel Tour &#8211; Tour Master &#8211; Add /blog/ to blog pages without affecting other url</title>
		<link>https://docs.goodlayers.com/travel-tour-tour-master-add-blog-to-blog-pages-without-affecting-other-url/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Fri, 12 Jan 2024 05:51:22 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<category><![CDATA[Travel Tour]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2963</guid>

					<description><![CDATA[Shared by our customer: Add /blog/ to blog pages without affecting other url (notion.site)  1. Install &#38; activate the Travel Tour child theme 2. Within cPanel file manager, copy the code below and paste into public_html &#62; wp-content &#62; themes &#62; traveltour-child &#62; functions.php. Add the code after the existing code on teh file but [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Shared by our customer: <a href="https://silent-rest-370.notion.site/Add-blog-to-blog-pages-without-affecting-other-url-0fbe61de9e634c138242b44226d0df2a">Add /blog/ to blog pages without affecting other url (notion.site)</a> </p>
<p>1. Install &amp; activate the Travel Tour child theme</p>
<p>2. Within cPanel file manager, copy the code below and paste into public_html &gt; wp-content &gt; themes &gt; traveltour-child &gt; functions.php. Add the code after the existing code on teh file but before ‘/// END ENQUEUE PARENT ACTION’</p>
<p>3. Go to the WordPress website and settings &gt; permalinks and select ‘Plain’ and save.</p>
<p>4. Now select ‘custom structure’, paste in /blog/%postname%/ and save.</p>
<p>5. You may need to refresh but it should work.</p>


<pre class="wp-block-code"><code>// Custom URL Blog
function create_tour_post_type() {
    register_post_type('tour',
        array(
            'labels' => array(
                'name' => __('Tours'),
                'singular_name' => __('Tour')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'tour', 'with_front' => false),
            'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments')
        )
    );
}
add_action('init', 'create_tour_post_type');
function create_destinations_post_type() {
    register_post_type('portfolio',
        array(
            'labels' => array(
                'name' => __('Destinations'),
                'singular_name' => __('Destination')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'destinations', 'with_front' => false),
            'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments')
        )
    );
}
add_action('init', 'create_destinations_post_type');

function create_personnel_post_type() {
    register_post_type('personnel',
        array(
            'labels' => array(
                'name' => __('Personnel'),
                'singular_name' => __('Person')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'personnel', 'with_front' => false),
            'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments')
        )
    );
}
add_action('init', 'create_personnel_post_type');
function create_room_post_type() {
    register_post_type('room',
        array(
            'labels' => array(
                'name' => __('Rooms'),
                'singular_name' => __('Room')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'room', 'with_front' => false),
            'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments')
        )
    );
}
add_action('init', 'create_room_post_type');</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tour Master &#8211; Custom Fields in Register form</title>
		<link>https://docs.goodlayers.com/tour-master-custom-fields-in-register-form/</link>
		
		<dc:creator><![CDATA[docsadmin]]></dc:creator>
		<pubDate>Tue, 15 Aug 2023 12:29:33 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2884</guid>

					<description><![CDATA[&#8211; To add the customize field in the register form, please take a look at this file: \wp-content\plugins\tourmaster\include\user-util.php around line 660. You will see the default code like this: You can add a new custom field like this after the contact_address field. You can change the custom field type to: combobox, text, date, and textarea. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>&#8211; To add the customize field in the register form, please take a look at this file: \wp-content\plugins\tourmaster\include\user-util.php around line 660. You will see the default code like this:</p>



<pre class="wp-block-code"><code>	if( !function_exists('tourmaster_get_profile_fields') ){
		function tourmaster_get_profile_fields(){
			return apply_filters('tourmaster_profile_fields', array(
				'first_name' =&gt; array(
					'title' =&gt; esc_html__('First Name', 'tourmaster'),
					'type' =&gt; 'text',
					'required' =&gt; true
				),
				'last_name' =&gt; array(
					'title' =&gt; esc_html__('Last Name', 'tourmaster'),
					'type' =&gt; 'text',
					'required' =&gt; true
				),
				'gender' =&gt; array(
					'title' =&gt; esc_html__('Gender', 'tourmaster'),
					'type' =&gt; 'combobox',
					'options' =&gt; array(
						'' =&gt; '-',
						'male' =&gt; esc_html__('Male', 'tourmaster'),
						'female' =&gt; esc_html__('Female', 'tourmaster')
					)
				),
				'birth_date' =&gt; array(
					'title' =&gt; esc_html__('Birth Date', 'tourmaster'),
					'type' =&gt; 'date',
					'required' =&gt; true
				),
				'email' =&gt; array(
					'title' =&gt; esc_html__('Email', 'tourmaster'),
					'type' =&gt; 'email',
					'required' =&gt; true
				),
				'phone' =&gt; array(
					'title' =&gt; esc_html__('Phone', 'tourmaster'),
					'type' =&gt; 'text',
					'required' =&gt; true
				),
				'country' =&gt; array(
					'title' =&gt; esc_html__('Country', 'tourmaster'),
					'type' =&gt; 'combobox',
					'options' =&gt; tourmaster_get_country_list(),
					'required' =&gt; true,
					'default' =&gt; tourmaster_get_option('general', 'user-default-country', '')
				),
				'contact_address' =&gt; array(
					'title' =&gt; esc_html__('Contact Address', 'tourmaster'),
					'type' =&gt; 'textarea'
				),
			));
		}
	}	</code></pre>



<p>You can add a new custom field like this after the contact_address field.</p>



<pre class="wp-block-code"><code>				'contact_address' =&gt; array(
					'title' =&gt; esc_html__('Contact Address', 'tourmaster'),
					'type' =&gt; 'textarea'
				),
				'your_custom_field' =&gt; array(
					'title' =&gt; esc_html__('New field', 'tourmaster'),
					'type' =&gt; 'textarea'
				),</code></pre>



<p>You can change the custom field type to: combobox, text, date, and textarea. You can try to check the register form now.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Theme Version 3 &#8211; Add A New Top Bar Social</title>
		<link>https://docs.goodlayers.com/theme-version-3-add-a-new-top-bar-social/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Tue, 20 Jun 2023 04:30:36 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2877</guid>

					<description><![CDATA[Hello guys, today I will be walking with you to add a new top bar social. We&#8217;re writing this guide because we can&#8217;t provide all the socials on the top bar as per request, so you can select the one you want and add it by yourself. Let&#8217;s go! 1. I recommended backup your website [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Hello guys, today I will be walking with you to add a new top bar social. We&#8217;re writing this guide because we can&#8217;t provide all the socials on the top bar as per request, so you can select the one you want and add it by yourself. Let&#8217;s go!</p>



<p>1. <strong>I recommended backup your website before do anything.</strong></p>



<p>2. Call the file from the parent theme to the child theme to override the original file. Please add this function in the functions.php file of the child theme:</p>



<pre class="wp-block-code"><code>// Call the customize file in the child theme
require_once get_stylesheet_directory() . '/include/header-settings.php';</code></pre>



<p>3. Add the WhatsApp field in the top bar social around line 257 file header-settings.php:</p>



<p>The default code:</p>



<pre class="wp-block-code"><code>					'top-bar-social-icon-type' => array(
	'title' => esc_html__('Icon Type', 'traveltour'),
	'type' => 'combobox',
	'options' => array(
		'font-awesome' => esc_html__('Font Awesome', 'traveltour'),
		'font-awesome5' => esc_html__('Font Awesome 5', 'traveltour'),
	)
),
'top-bar-social-tiktok' => array(
	'title' => esc_html__('Top Bar Social Tiktok Link', 'traveltour'),
	'type' => 'text',
	'condition' => array( 'enable-top-bar-social' => 'enable', 'top-bar-social-icon-type' => 'font-awesome5' )
),</code></pre>



<p>Change the code to:</p>



<pre class="wp-block-code"><code>					'top-bar-social-icon-type' => array(
	'title' => esc_html__('Icon Type', 'traveltour'),
	'type' => 'combobox',
	'options' => array(
		'font-awesome' => esc_html__('Font Awesome', 'traveltour'),
		'font-awesome5' => esc_html__('Font Awesome 5', 'traveltour'),
	)
),
'top-bar-social-whatsapp' => array(
	'title' => esc_html__('Top Bar Social Whats App Link', 'traveltour'),
	'type' => 'text',
	'condition' => array( 'enable-top-bar-social' => 'enable', 'top-bar-social-icon-type' => 'font-awesome5' )
),
'top-bar-social-tiktok' => array(
	'title' => esc_html__('Top Bar Social Tiktok Link', 'traveltour'),
	'type' => 'text',
	'condition' => array( 'enable-top-bar-social' => 'enable', 'top-bar-social-icon-type' => 'font-awesome5' )
),</code></pre>



<p>Copy the header-social.php file from the parent theme to the child theme like this: xxx-child/header/header-social.php file and add the WhatsApp icon on the front end:</p>



<p>The default code:</p>



<pre class="wp-block-code"><code>}else if( $icon_type == 'font-awesome5' ){
	$social_list = array(
		'tiktok' => array('title'=> 'Tiktok', 'icon'=>'fa5b fa5-tiktok'),</code></pre>



<p>Change it to:</p>



<pre class="wp-block-code"><code>}else if( $icon_type == 'font-awesome5' ){
	$social_list = array(
		'whatsapp' => array('title'=> 'WhatsApp', 'icon'=>'fa5b fa5-whatsapp'),
		'tiktok' => array('title'=> 'Tiktok', 'icon'=>'fa5b fa5-tiktok'),</code></pre>



<p>You can check your website back now.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>GoodLayers Event &#8211; Add an excerpt in the event post</title>
		<link>https://docs.goodlayers.com/goodlayers-event-add-an-excerpt-in-the-event-post/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Fri, 28 Apr 2023 12:22:39 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[GoodLayers Events]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2860</guid>

					<description><![CDATA[In the Confera theme, we have a few styles for the even/conference style like: &#8211; List style: https://demo.goodlayers.com/u/confera/online/schedule-list-1/ &#8211; Grid style: https://demo.goodlayers.com/u/confera/online/schedule-card-style/ In those styles, we don&#8217;t support the excerpt, that&#8217;s why we&#8217;re creating this article to help you add the excerpt by yourself. Step 1: Step 2: Call the file from child theme to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>In the <a rel="noreferrer noopener" href="https://themeforest.net/item/confera-online-conference-event-wordpress/29139864" target="_blank">Confera theme</a>, we have a few styles for the even/conference style like:</p>



<p>&#8211; List style: https://demo.goodlayers.com/u/confera/online/schedule-list-1/</p>



<p>&#8211; Grid style: https://demo.goodlayers.com/u/confera/online/schedule-card-style/</p>



<p>In those styles, we don&#8217;t support the excerpt, that&#8217;s why we&#8217;re creating this article to help you add the excerpt by yourself.</p>



<h2 class="wp-block-heading"><strong>Step 1:</strong></h2>



<ul class="wp-block-list">
<li>Backup your website.</li>



<li>Create a folder call: <strong>goodlayers-event</strong> in the child theme.</li>



<li>Copy those files into the <strong>goodlayers-event </strong>folder: event-item.php, event-style.php and pb-elelement-event.php.</li>
</ul>



<h2 class="wp-block-heading"><strong>Step 2:</strong></h2>



<p>Call the file from child theme to override the original file from the goodlayers event plugin. Please add this function in the functions.php file of the child theme:</p>



<pre class="wp-block-code"><code>// Call the customize file in the child theme
require_once get_stylesheet_directory() . '/goodlayers-event/event-style.php';
require_once get_stylesheet_directory() . '/goodlayers-event/event-item.php';
require_once get_stylesheet_directory() . '/goodlayers-event/pb-element-event.php';</code></pre>



<p>Override the original file after setup theme:</p>



<pre class="wp-block-code"><code>// Override the original file after setup theme
add_action('after_setup_theme', 'gdlr_core_event_add_pb_element_custom');
if(!function_exists('gdlr_core_event_add_pb_element_custom')){
	function gdlr_core_event_add_pb_element_custom(){
		if(class_exists('gdlr_core_page_builder_element')){
			gdlr_core_page_builder_element::add_element('event-g', 'gdlr_core_pb_element_event_g_custom');
		}
	}
}</code></pre>



<h2 class="wp-block-heading"><strong>Step 3:</strong></h2>



<h3 class="wp-block-heading">Go to event-style.php:</h3>



<p><strong>Original Code: </strong></p>



<pre class="wp-block-code"><code>	if( !class_exists('gdlr_core_event_g_style') ){
		class gdlr_core_event_g_style{</code></pre>



<p><strong>Change it to:</strong></p>



<pre class="wp-block-code"><code>if( !class_exists('gdlr_core_event_g_style_custom') ){
		class gdlr_core_event_g_style_custom{</code></pre>



<p>Search <strong>event style 1</strong> and add the excerpt.</p>



<p><strong>Original Code:</strong></p>



<pre class="wp-block-code"><code>$ret .= '&lt;div class="gdlr-core-content-wrap" >';
$ret .= $this->get_title($args);
$ret .= $this->get_info($infos);
$ret .= '&lt;/div>';</code></pre>



<p><strong>Change it to:</strong></p>



<pre class="wp-block-code"><code>$ret .= '&lt;div class="gdlr-core-content-wrap" >';
$ret .= $this->get_title($args);
$ret .= $this->get_info($infos);					
if( !empty($args&#91;'excerpt-number']) ){
    $ret .= $this->get_excerpt($args&#91;'excerpt-number']);
}
$ret .= '&lt;/div>';</code></pre>



<h3 class="wp-block-heading">Go to event-item.php</h3>



<p><strong>Original Code:</strong></p>



<pre class="wp-block-code"><code>// Around line 6-7	
if( !class_exists('gdlr_core_event_g_item') ){
		class gdlr_core_event_g_item{

// Around line 363
$query = $this->query;
$event_style = new gdlr_core_event_g_style();

// Around line 397
$event_style = new gdlr_core_event_g_style();

// Around line 499
add_action('wp_ajax_gdlr_core_event_g_ajax', 'gdlr_core_event_g_ajax');
add_action('wp_ajax_nopriv_gdlr_core_event_g_ajax', 'gdlr_core_event_g_ajax');
if( !function_exists('gdlr_core_event_g_ajax') ){
    function gdlr_core_event_g_ajax(){</code></pre>



<p><strong>Change it to:</strong></p>



<pre class="wp-block-code"><code>// Around line 6-7	
if( !class_exists('gdlr_core_event_g_item_custom') ){
		class gdlr_core_event_g_item_custom{

// Around line 363
$query = $this->query;
$event_style = new gdlr_core_event_g_style_custom();
$event_style->get_content($this->settings);

// Around line 397
$event_style = new gdlr_core_event_g_style_custom();
$event_style->get_content($this->settings);

// Around line 499
add_action('wp_ajax_gdlr_core_event_g_ajax', 'gdlr_core_event_g_custom_ajax',9);
add_action('wp_ajax_nopriv_gdlr_core_event_g_ajax', 'gdlr_core_event_g_custom_ajax',9);
if( !function_exists('gdlr_core_event_g_custom_ajax') ){
    function gdlr_core_event_g_custom_ajax(){</code></pre>



<h3 class="wp-block-heading">Go to pb-element-event.php</h3>



<p><strong>Original Code:</strong></p>



<pre class="wp-block-code"><code>// Around line 6
add_action('plugins_loaded', 'gdlr_core_event_add_pb_element');
	if( !function_exists('gdlr_core_event_add_pb_element') ){
		function gdlr_core_event_add_pb_element(){

			if( class_exists('gdlr_core_page_builder_element') ){
				gdlr_core_page_builder_element::add_element('event-g', 'gdlr_core_pb_element_event_g'); 
			}
			
		}
	}
	
	if( !class_exists('gdlr_core_pb_element_event_g') ){
		class gdlr_core_pb_element_event_g{

// Around line 121
'condition' => array( 'event-style' => 'style-2' )

// Around line 339
'event-style' => 'style-1', 'event-info' => array('date', 'time', 'location'),

// Around line 449
$event_item = new gdlr_core_event_g_item($settings);</code></pre>



<p><strong>Change it to:</strong></p>



<pre class="wp-block-code"><code>// Around line 6
if( !class_exists('gdlr_core_pb_element_event_g_custom') ){
		class gdlr_core_pb_element_event_g_custom{

// Around line 121
'condition' => array('event-style' => array('style-1', 'style-2', 'style-1-room', 'style-card', 'style-multi-date', 'style-grid'))

// Around line 339
'event-style' => 'style-1', 'event-info' => array('date', 'time', 'location', 'caption'),

// Around line 449
$event_item = new gdlr_core_event_g_item_custom($settings);</code></pre>



<p>Please clear the cache/cookie on your website before check it again.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Theme Version 2 &#8211; Override the parent theme to the child theme</title>
		<link>https://docs.goodlayers.com/theme-version-2-override-the-parent-theme-to-the-child-theme/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Wed, 29 Mar 2023 08:52:06 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2849</guid>

					<description><![CDATA[In this tutorial, I will try to override the gdlr-page-item.php in: \wp-content\themes\totalbusiness\include\function\gdlr-page-item.php from the Total Business theme into the child theme. In the child theme, copy the file in the path: totalbusiness-child\include\function\gdlr-page-item.php. (create the folder that&#8217;s not available in your child theme) In the functions.php in the child theme, add a line of code: Try to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>In this tutorial, I will try to override the gdlr-page-item.php in: <strong>\wp-content\themes\totalbusiness\include\function\gdlr-page-item.php</strong> from the Total Business theme into the child theme.</p>



<p>In the child theme, copy the file in the path: <strong>totalbusiness-child\include\function\gdlr-page-item.php</strong>. (create the folder that&#8217;s not available in your child theme)</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://docs.goodlayers.com/wp-content/uploads/2023/03/support-2023-03-29-15.50.14.jpg" alt="" class="wp-image-2850" width="842" height="274" srcset="https://docs.goodlayers.com/wp-content/uploads/2023/03/support-2023-03-29-15.50.14.jpg 701w, https://docs.goodlayers.com/wp-content/uploads/2023/03/support-2023-03-29-15.50.14-300x98.jpg 300w" sizes="(max-width: 842px) 100vw, 842px" /></figure>



<p>In the functions.php in the child theme, add a line of code:</p>



<pre class="wp-block-code"><code>include_once(get_stylesheet_directory() . '/include/function/gdlr-page-item.php');</code></pre>



<p>Try to make any change in the totalbusiness-child\include\function\gdlr-page-item.php and check it again.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tour Master &#8211; How to add a note in the invoice email</title>
		<link>https://docs.goodlayers.com/tour-master-how-to-add-a-note-in-the-invoice-email/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Tue, 18 Jan 2022 05:55:33 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2702</guid>

					<description><![CDATA[I will show you how to add a note in the invoice email today. First, open this file: /wp-content/plugins/tourmaster/include/mail-util.php around the price breakdown section and you will get the default code look like below: Then change it like the code below: Then you will get the result like my screenshot if everything correct.]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>I will show you how to add a note in the invoice email today.</p>



<p>First, open this file: /wp-content/plugins/tourmaster/include/mail-util.php around the <strong>price breakdown</strong> section and you will get the default code look like below:</p>



<pre class="wp-block-code"><code>// price breakdown
if( !empty($result->pricing_info) ){
    $pricing_info = json_decode($result->pricing_info, true);
    echo '&lt;div>'; // tourmaster-invoice-price-breakdown
    echo '&lt;div style="padding: 18px 25px; font-size: 14px; font-weight: 700; text-transform: uppercase; color: #454545; background-color: #f3f3f3" >'; // tourmaster-invoice-price-head
    echo '&lt;span style="width: 80%; float: left;" >' . esc_html__('Description', 'tourmaster') . '&lt;/span>'; // tourmaster-head
    echo '&lt;span style="overflow: hidden;" >' . esc_html__('Total', 'tourmaster') . '&lt;/span>'; // tourmaster-tail
    echo '&lt;/div>'; // tourmaster-invoice-price-head

    echo tourmaster_get_tour_invoice_price_email($result->tour_id, $pricing_info&#91;'price-breakdown'], $booking_detail);

    echo '&lt;div style="font-weight: bold; padding: 18px 25px; border-width: 1px 0px 2px; border-style: solid; border-color: #e1e1e1;" >'; // tourmaster-invoice-total-price
    echo '&lt;span style="float: left; margin-left: 55%; width: 25%; font-size: 15px;" >' . esc_html__('Total', 'tourmaster') . '&lt;/span> '; // tourmaster-head
    echo '&lt;span style="display: block; overflow: hidden; font-size: 16px;" >' . tourmaster_money_format($result->total_price) . '&lt;/span>'; // tourmaster-tail
    echo '&lt;/div>'; // tourmaster-invoice-total-price

    echo '&lt;/div>'; // tourmaster-invoice-price-breakdown
}</code></pre>



<p>Then change it like the code below:</p>



<pre class="wp-block-code"><code>// price breakdown
if( !empty($result->pricing_info) ){
    $pricing_info = json_decode($result->pricing_info, true);
    echo '&lt;div>'; // tourmaster-invoice-price-breakdown
    echo '&lt;div style="padding: 18px 25px; font-size: 14px; font-weight: 700; text-transform: uppercase; color: #454545; background-color: #f3f3f3" >'; // tourmaster-invoice-price-head
    echo '&lt;span style="width: 80%; float: left;" >' . esc_html__('Description', 'tourmaster') . '&lt;/span>'; // tourmaster-head
    echo '&lt;span style="overflow: hidden;" >' . esc_html__('Total', 'tourmaster') . '&lt;/span>'; // tourmaster-tail
    echo '&lt;/div>'; // tourmaster-invoice-price-head

    echo tourmaster_get_tour_invoice_price_email($result->tour_id, $pricing_info&#91;'price-breakdown'], $booking_detail);

    echo '&lt;div style="font-weight: bold; padding: 18px 25px; border-width: 1px 0px 2px; border-style: solid; border-color: #e1e1e1;" >'; // tourmaster-invoice-total-price
    echo '&lt;span style="float: left; margin-left: 55%; width: 25%; font-size: 15px;" >' . esc_html__('Total', 'tourmaster') . '&lt;/span> '; // tourmaster-head
    echo '&lt;span style="display: block; overflow: hidden; font-size: 16px;" >' . tourmaster_money_format($result->total_price) . '&lt;/span>'; // tourmaster-tail
    echo '&lt;/div>'; // tourmaster-invoice-total-price

    // THE NOTE IN THE INVOICE EMAIL
    echo '&lt;div style="padding: 18px 25px; font-size: 14px; font-weight: 700; text-transform: uppercase; color: #454545; background-color: #f3f3f3" >'; // tourmaster-invoice-price-note
    echo '&lt;span style="width: 100%;" >' . esc_html__('Note', 'tourmaster') . '&lt;/span>'; // tourmaster-head
    echo '&lt;/div>'; // tourmaster-invoice-price-head
    echo '&lt;span style="display:block;font-size:13px; padding-top: 20px;">'. esc_html__('My note here','tourmaster') .'&lt;/span>';
    // END THE NOTE IN THE INVOICE EMAIL

    echo '&lt;/div>'; // tourmaster-invoice-price-breakdown
}</code></pre>



<p>Then you will get the result like my screenshot if everything correct.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://docs.goodlayers.com/wp-content/uploads/2022/01/support-2022-01-18-12.53.58-1024x748.jpg" alt="" class="wp-image-2704" width="840" height="613" srcset="https://docs.goodlayers.com/wp-content/uploads/2022/01/support-2022-01-18-12.53.58-1024x748.jpg 1024w, https://docs.goodlayers.com/wp-content/uploads/2022/01/support-2022-01-18-12.53.58-300x219.jpg 300w, https://docs.goodlayers.com/wp-content/uploads/2022/01/support-2022-01-18-12.53.58-768x561.jpg 768w, https://docs.goodlayers.com/wp-content/uploads/2022/01/support-2022-01-18-12.53.58.jpg 1188w" sizes="(max-width: 840px) 100vw, 840px" /></figure></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tour Master &#8211; How to add Yoast breadcrumb</title>
		<link>https://docs.goodlayers.com/tour-master-how-to-add-yoast-breadcrumb/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Fri, 24 Sep 2021 05:51:55 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2696</guid>

					<description><![CDATA[Please open those files: \wp-content\plugins\tourmaster\single\tour.php \wp-content\plugins\tourmaster\single\tour-2.php Then search the close tags of tourmaster-single-header: Then add the breadcrumb code like below: Save the file and check your website again. The breadcrumb doesn&#8217;t contain any style so you must add the style for it by using CSS by yourself, we don&#8217;t provide support for it.]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>Please open those files:</p>



<ul class="wp-block-list"><li><strong>\wp-content\plugins\tourmaster\single\tour.php</strong></li><li><strong>\wp-content\plugins\tourmaster\single\tour-2.php</strong></li></ul>



<p>Then search the close tags of tourmaster-single-header:</p>



<pre class="wp-block-code"><code>echo '&lt;/div&gt;'; // tourmaster-single-header-container-inner
echo '&lt;/div&gt;'; // tourmaster-single-header-container
echo '&lt;/div&gt;'; // tourmaster-single-header // SEARCH HERE</code></pre>



<p>Then add the breadcrumb code like below:</p>



<pre class="wp-block-code"><code>echo '&lt;/div&gt;'; // tourmaster-single-header-container-inner
echo '&lt;/div&gt;'; // tourmaster-single-header-container
echo '&lt;/div&gt;'; // tourmaster-single-header

if ( function_exists('yoast_breadcrumb') ) {
  yoast_breadcrumb( '&lt;p id="breadcrumbs"&gt;','&lt;/p&gt;' );
}</code></pre>



<p>Save the file and check your website again.</p>



<p class="has-white-color has-vivid-red-background-color has-text-color has-background">The breadcrumb doesn&#8217;t contain any style so you must add the style for it by using CSS by yourself, we don&#8217;t provide support for it.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tour Master – Add category/tags in tour page builder and tour archive page</title>
		<link>https://docs.goodlayers.com/tour-master-add-category-tags-in-tour-page-builder-and-tour-archive-page/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Wed, 09 Dec 2020 15:02:17 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2629</guid>

					<description><![CDATA[Yesterday, I&#8217;ve write a guide to add category/tags in tour post, now we&#8217;ll add it in tour list page from tour page builder or tour archive page. Go to this file: wp-content/plugins/tourmaster/include/pb/tour-style.php, you&#8217;ll see the default code: Then change it to: Now check your website again now. Please note it just help you showing the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>Yesterday, I&#8217;ve write a guide to add category/tags in tour post, now we&#8217;ll add it in tour list page from tour page builder or tour archive page.</p>



<p>Go to this file: wp-content/plugins/tourmaster/include/pb/tour-style.php, you&#8217;ll see the default code:</p>



<pre class="wp-block-code"><code>// get the portfolio title
function tour_title( $args, $title_front = '', $title_back = '' ){

    $ret  = '&lt;h3 class="tourmaster-tour-title gdlr-core-skin-title" ' . tourmaster_esc_style(array(
        'font-size' =&gt; empty($args&#91;'tour-title-font-size'])? '': $args&#91;'tour-title-font-size'],
        'font-weight' =&gt; empty($args&#91;'tour-title-font-weight'])? '': $args&#91;'tour-title-font-weight'],
        'letter-spacing' =&gt; empty($args&#91;'tour-title-letter-spacing'])? '': $args&#91;'tour-title-letter-spacing'],
        'text-transform' =&gt; empty($args&#91;'tour-title-text-transform'])? '': $args&#91;'tour-title-text-transform'],
        'margin-bottom' =&gt; empty($args&#91;'tour-title-bottom-margin'])? '': $args&#91;'tour-title-bottom-margin']
    )) . ' &gt;';
    $ret .= '&lt;a href="' . get_permalink() . '" &gt;' . $title_front . get_the_title() . $title_back . '&lt;/a&gt;';
    $ret .= '&lt;/h3&gt;';


    return $ret;
}</code></pre>



<p>Then change it to:</p>



<pre class="wp-block-code"><code>// get the portfolio title
function tour_title( $args, $title_front = '', $title_back = '' ){

    $ret  = '&lt;h3 class="tourmaster-tour-title gdlr-core-skin-title" ' . tourmaster_esc_style(array(
        'font-size' =&gt; empty($args&#91;'tour-title-font-size'])? '': $args&#91;'tour-title-font-size'],
        'font-weight' =&gt; empty($args&#91;'tour-title-font-weight'])? '': $args&#91;'tour-title-font-weight'],
        'letter-spacing' =&gt; empty($args&#91;'tour-title-letter-spacing'])? '': $args&#91;'tour-title-letter-spacing'],
        'text-transform' =&gt; empty($args&#91;'tour-title-text-transform'])? '': $args&#91;'tour-title-text-transform'],
        'margin-bottom' =&gt; empty($args&#91;'tour-title-bottom-margin'])? '': $args&#91;'tour-title-bottom-margin']
    )) . ' &gt;';
    $ret .= '&lt;a href="' . get_permalink() . '" &gt;' . $title_front . get_the_title() . $title_back . '&lt;/a&gt;';
    $ret .= '&lt;/h3&gt;';
    $title_cat = get_the_term_list(get_the_ID(), 'tour_category', '', ', ' );
    $title_tag = get_the_term_list(get_the_ID(), 'tour_tag', '', ', ' );
    if(!empty($title_cat)){
    $ret .= esc_html__('Categories: ', 'tourmaster') . $title_cat;
    }
    if(!empty($title_tag)){
    $ret .= esc_html__('Tags: ', 'tourmaster') . $title_tag;
    }
    return $ret;
}</code></pre>



<p>Now check your website again now.</p>



<p class="has-white-color has-vivid-red-background-color has-text-color has-background">Please note it just help you showing the tour category &#8211; tour tags &#8211; custom filters, it doesn&#8217;t contain any style, so you must style it by yourself instead.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tour Master &#8211; Add category/tags in tour post</title>
		<link>https://docs.goodlayers.com/tour-master-add-category-tags-in-tour-post/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Mon, 07 Dec 2020 16:05:51 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[Tour Master]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2617</guid>

					<description><![CDATA[The default title in tour post only support for tour title and review. Today we&#8217;ll help you know how to add tour category and tour tag in tour post. Please open these files: wp-content/plugins/tourmaster/single/tour.php wp-content/plugins/tourmaster/single/tour-2.php In the line 249, you can see the default code here: Then change it to: And check it again.]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>The default title in tour post only support for tour title and review. Today we&#8217;ll help you know how to add <strong>tour category</strong> and <strong>tour tag</strong> in tour post.</p>



<h4 class="wp-block-heading">Please open these files:</h4>



<ul class="wp-block-list"><li><strong>wp-content/plugins/tourmaster/single/tour.php</strong></li></ul>



<ul class="wp-block-list"><li><strong>wp-content/plugins/tourmaster/single/tour-2.php</strong></li></ul>



<p>In the line 249, you can see the default code here:</p>



<pre class="wp-block-code"><code>if( empty($tour_option&#91;'enable-page-title']) || $tour_option&#91;'enable-page-title'] == 'enable' ){
    echo '&lt;h1 class="tourmaster-single-header-title" >' . get_the_title() . '&lt;/h1>';
} </code></pre>



<p>Then change it to:</p>



<pre class="wp-block-code"><code>if( empty($tour_option&#91;'enable-page-title']) || $tour_option&#91;'enable-page-title'] == 'enable' ){
    echo '&lt;h1 class="tourmaster-single-header-title" >' . get_the_title() . '&lt;/h1>';
    echo (esc_html__('Categories: ', 'tourmaster') . get_the_term_list( get_the_ID(), 'tour_category', '', ', ' ));
    echo '&amp;lt;br&amp;gt;' . (esc_html__('Tags: ', 'tourmaster') . get_the_term_list( get_the_ID(), 'tour_tag', '', ', ' ));
}</code></pre>



<p>And check it again.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Add Page Builder in Product</title>
		<link>https://docs.goodlayers.com/add-page-builder-in-product/</link>
		
		<dc:creator><![CDATA[loc]]></dc:creator>
		<pubDate>Wed, 17 Jun 2020 16:40:02 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<guid isPermaLink="false">https://docs.goodlayers.com/?p=2515</guid>

					<description><![CDATA[You can add page builder in product post by follow our function code and add it in child theme functions.php file.]]></description>
										<content:encoded><![CDATA[
<p class="has-vivid-red-background-color has-text-color has-background" style="color:#ffffff">The developer documentation assumes you have knowledge and coding skills. While we created these docs to help you achieve things not available in the original features, we do not provide support if something doesn&#8217;t work when referencing the developer documentation. If the example code doesn’t work for you, please debug it yourself or hire a freelancer to help with debugging. <br><br>All customizations will be lost when you update our theme/plugin to a new version in the future. To avoid this, you must use filters and actions: https://developer.wordpress.org/plugins/hooks/.</p>



<p>Please add the function below in functions.php file in child theme</p>



<pre class="wp-block-code"><code>	// add page builder to products
	if( is_admin() ){ add_filter('gdlr_core_page_builder_post_type', 'gdlr_core_product_add_page_builder'); }
	if( !function_exists('gdlr_core_product_add_page_builder') ){
		function gdlr_core_product_add_page_builder( $post_type ){
			$post_type&#91;] = 'product';
			return $post_type;
		}
	}

	// print page builder content in products
	add_action( 'woocommerce_after_single_product_summary', 'gdlr_core_page_builder_product_type', 5 );
	if( !function_exists('gdlr_core_page_builder_product_type') ){
	function gdlr_core_page_builder_product_type() {
			if( !post_password_required() ){
				do_action('gdlr_core_print_page_builder');
			}
		}
	}</code></pre>



<p>Then add this custom style in style.css file in child theme and check the single product again.</p>



<pre class="wp-block-code"><code>/* SINGLE PRODUCT PAGE BUILDER STYLE */
.single-product .gdlr-core-page-builder-body {
    width: 100%;
    clear: both;
}

/* SINGLE PRODUCT OVERRIDE STYLE */
.single-product.woocommerce div.product form.cart.variations_form {
    width: 100%;
}
.woocommerce div.product form.cart .variations td.label {
    text-align: left;
}
.single-product.woocommerce div.product .product_meta {
    clear: both;
}
.woocommerce div.product form.cart .woocommerce-variation-description p {
    margin-bottom: 0.5em;
}
.woocommerce-variation-price {
    margin-bottom: 0.5em;
}
.woocommerce div.product div.images img {
    height: 600px;
}
.woocommerce div.product div.images .flex-control-thumbs img {
    height: auto;
}

@media screen and (max-width: 768px) {
    .woocommerce div.product div.images img {
        height: auto;
    }
}</code></pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
