Version Description
(2022-08-03) = - Introducing new block patterns, which can be used to integrate contact card info directly into your block-based theme templates. - Added fields for cell phone, fax and Whatsapp. - Added a new (premium) option that lets you re-order the elements in the contact card. - Added in date and time formatting options for the scheduler in the admin. - Fixed some issues with the layout/styling of the schema meta box on the post and product (WooCommerce) edit screens.
Download this release
Release Info
Developer | Rustaurius |
Plugin | Business Profile |
Version | 2.2.3 |
Comparing to | |
See all releases |
Code changes from version 2.2.2 to 2.2.3
- assets/css/admin.css +30 -1
- assets/css/contact-card.css +76 -0
- assets/img/premium-screenshots/labelling1.png +0 -0
- assets/js/block-contact-card.js +27 -0
- assets/js/blocks.build.js +1 -1
- bpfwp-templates/contact-card.php +1 -1
- bpfwp-templates/opening-hours.php +3 -1
- business-profile.php +4 -2
- includes/class-blocks.php +12 -0
- includes/class-contact-card-widget.php +4 -1
- includes/class-custom-post-types.php +40 -0
- includes/class-dashboard.php +0 -1
- includes/class-patterns.php +75 -0
- includes/class-permissions.php +1 -0
- includes/class-schema-cpt.php +16 -6
- includes/class-settings.php +191 -4
- includes/patterns/address.php +12 -0
- includes/patterns/cell-phone.php +12 -0
- includes/patterns/contact-card.php +12 -0
- includes/patterns/email.php +12 -0
- includes/patterns/fax.php +12 -0
- includes/patterns/hours.php +12 -0
- includes/patterns/map.php +12 -0
- includes/patterns/phone-email.php +12 -0
- includes/patterns/phone.php +12 -0
- includes/patterns/whatsapp.php +12 -0
- includes/template-functions.php +160 -16
- readme.txt +8 -1
assets/css/admin.css
CHANGED
@@ -1915,4 +1915,33 @@ SETTINGS PREVIEW SCREENS
|
|
1915 |
margin-right: 0;
|
1916 |
margin-top: 12px;
|
1917 |
}
|
1918 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1915 |
margin-right: 0;
|
1916 |
margin-top: 12px;
|
1917 |
}
|
1918 |
+
}
|
1919 |
+
|
1920 |
+
|
1921 |
+
/**************************************/
|
1922 |
+
/*** META BOXES ON POST EDIT SCREEN ***/
|
1923 |
+
/**************************************/
|
1924 |
+
.bpfwp-schema-field-container {
|
1925 |
+
margin-bottom: 8px;
|
1926 |
+
}
|
1927 |
+
|
1928 |
+
/*****************************************/
|
1929 |
+
/*** META BOXES ON PRODUCT EDIT SCREEN ***/
|
1930 |
+
/*****************************************/
|
1931 |
+
#bpfwp_schema_product_metabox .inside {
|
1932 |
+
display: flex;
|
1933 |
+
}
|
1934 |
+
#bpfwp_schema_product_metabox.closed .inside {
|
1935 |
+
display: none;
|
1936 |
+
}
|
1937 |
+
|
1938 |
+
/**************************/
|
1939 |
+
/*** SCHEMA EDIT SCREEN ***/
|
1940 |
+
/**************************/
|
1941 |
+
.post-type-schema .bpfwp-meta-input,
|
1942 |
+
.bpfwp-meta-input input[type="text"].bpfwp-schema-defaults-field {
|
1943 |
+
margin-bottom: 8px;
|
1944 |
+
}
|
1945 |
+
.post-type-schema .bpfwp-meta-field_defaults label {
|
1946 |
+
margin-top: 6px;
|
1947 |
+
}
|
assets/css/contact-card.css
CHANGED
@@ -68,6 +68,9 @@
|
|
68 |
|
69 |
.bp-directions:before,
|
70 |
.bp-phone:before,
|
|
|
|
|
|
|
71 |
.bp-contact:before,
|
72 |
.bp-ordering-link:before,
|
73 |
.bp-booking:before,
|
@@ -95,9 +98,21 @@
|
|
95 |
}
|
96 |
|
97 |
.bp-phone:before {
|
|
|
|
|
|
|
|
|
98 |
content: "\f470";
|
99 |
}
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
.bp-ordering-link::before {
|
102 |
content: "\f116";
|
103 |
}
|
@@ -114,3 +129,64 @@
|
|
114 |
.bp-opening-hours .bp-title:before {
|
115 |
content: "\f469";
|
116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
.bp-directions:before,
|
70 |
.bp-phone:before,
|
71 |
+
.bp-cell-phone:before,
|
72 |
+
.bp-whatsapp:before,
|
73 |
+
.bp-fax:before,
|
74 |
.bp-contact:before,
|
75 |
.bp-ordering-link:before,
|
76 |
.bp-booking:before,
|
98 |
}
|
99 |
|
100 |
.bp-phone:before {
|
101 |
+
content: "\f525";
|
102 |
+
}
|
103 |
+
|
104 |
+
.bp-cell-phone:before {
|
105 |
content: "\f470";
|
106 |
}
|
107 |
|
108 |
+
.bp-whatsapp:before {
|
109 |
+
content: "\f19a";
|
110 |
+
}
|
111 |
+
|
112 |
+
.bp-fax:before {
|
113 |
+
content: "\f193";
|
114 |
+
}
|
115 |
+
|
116 |
.bp-ordering-link::before {
|
117 |
content: "\f116";
|
118 |
}
|
129 |
.bp-opening-hours .bp-title:before {
|
130 |
content: "\f469";
|
131 |
}
|
132 |
+
|
133 |
+
/**************
|
134 |
+
BLOCK PATTERNS
|
135 |
+
**************/
|
136 |
+
.bpfwp-pattern-phone .bp-contact-card *,
|
137 |
+
.bpfwp-pattern-email .bp-contact-card *,
|
138 |
+
.bpfwp-pattern-phone-email .bp-contact-card *,
|
139 |
+
.bpfwp-pattern-cell-phone .bp-contact-card *,
|
140 |
+
.bpfwp-pattern-fax .bp-contact-card *,
|
141 |
+
.bpfwp-pattern-whatsapp .bp-contact-card *,
|
142 |
+
.bpfwp-pattern-address .bp-contact-card *,
|
143 |
+
.bpfwp-pattern-hours .bp-contact-card *,
|
144 |
+
.bpfwp-pattern-map .bp-contact-card * {
|
145 |
+
display: none;
|
146 |
+
}
|
147 |
+
.bpfwp-pattern-phone .bp-contact-card .bp-phone,
|
148 |
+
.bpfwp-pattern-phone .bp-contact-card .bp-phone * {
|
149 |
+
display: initial;
|
150 |
+
}
|
151 |
+
.bpfwp-pattern-email .bp-contact-card .bp-contact-email,
|
152 |
+
.bpfwp-pattern-email .bp-contact-card .bp-contact-email * {
|
153 |
+
display: initial;
|
154 |
+
}
|
155 |
+
.bpfwp-pattern-phone-email .bp-contact-card .bp-phone,
|
156 |
+
.bpfwp-pattern-phone-email .bp-contact-card .bp-phone *,
|
157 |
+
.bpfwp-pattern-phone-email .bp-contact-card .bp-contact-email,
|
158 |
+
.bpfwp-pattern-phone-email .bp-contact-card .bp-contact-email * {
|
159 |
+
display: initial;
|
160 |
+
}
|
161 |
+
.bpfwp-pattern-address .bp-contact-card .bp-name,
|
162 |
+
.bpfwp-pattern-address .bp-contact-card .bp-name *,
|
163 |
+
.bpfwp-pattern-address .bp-contact-card .bp-address,
|
164 |
+
.bpfwp-pattern-address .bp-contact-card .bp-address * {
|
165 |
+
display: initial;
|
166 |
+
}
|
167 |
+
.bpfwp-pattern-address .bp-contact-card .bp-name {
|
168 |
+
display: block;
|
169 |
+
}
|
170 |
+
.bpfwp-pattern-hours .bp-contact-card .bp-opening-hours,
|
171 |
+
.bpfwp-pattern-hours .bp-contact-card .bp-opening-hours * {
|
172 |
+
display: initial;
|
173 |
+
}
|
174 |
+
.bpfwp-pattern-map .bp-contact-card .bp-map {
|
175 |
+
display: block;
|
176 |
+
}
|
177 |
+
.bpfwp-pattern-map .bp-contact-card .bp-map * {
|
178 |
+
display: initial;
|
179 |
+
}
|
180 |
+
.bpfwp-pattern-fax .bp-contact-card .bp-fax,
|
181 |
+
.bpfwp-pattern-fax .bp-contact-card .bp-fax * {
|
182 |
+
display: initial;
|
183 |
+
}
|
184 |
+
.bpfwp-pattern-whatsapp .bp-contact-card .bp-whatsapp,
|
185 |
+
.bpfwp-pattern-whatsapp .bp-contact-card .bp-whatsapp * {
|
186 |
+
display: initial;
|
187 |
+
}
|
188 |
+
.bpfwp-pattern-cell-phone .bp-contact-card .bp-cell-phone,
|
189 |
+
.bpfwp-pattern-cell-phone .bp-contact-card .bp-cell-phone * {
|
190 |
+
display: initial;
|
191 |
+
}
|
192 |
+
|
assets/img/premium-screenshots/labelling1.png
ADDED
Binary file
|
assets/js/block-contact-card.js
CHANGED
@@ -29,6 +29,18 @@ registerBlockType( 'business-profile/contact-card', {
|
|
29 |
type: 'boolean',
|
30 |
default: true
|
31 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
show_contact: {
|
33 |
type: 'boolean',
|
34 |
default: true
|
@@ -83,6 +95,21 @@ registerBlockType( 'business-profile/contact-card', {
|
|
83 |
checked={ attributes.show_phone }
|
84 |
onChange={ ( show_phone ) => { setAttributes( { show_phone } ) } }
|
85 |
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
<CheckboxControl
|
87 |
label={ __( 'Show contact details', 'business-profile') }
|
88 |
checked={ attributes.show_contact }
|
29 |
type: 'boolean',
|
30 |
default: true
|
31 |
},
|
32 |
+
show_cell_phone: {
|
33 |
+
type: 'boolean',
|
34 |
+
default: true
|
35 |
+
},
|
36 |
+
show_whatsapp: {
|
37 |
+
type: 'boolean',
|
38 |
+
default: true
|
39 |
+
},
|
40 |
+
show_fax: {
|
41 |
+
type: 'boolean',
|
42 |
+
default: true
|
43 |
+
},
|
44 |
show_contact: {
|
45 |
type: 'boolean',
|
46 |
default: true
|
95 |
checked={ attributes.show_phone }
|
96 |
onChange={ ( show_phone ) => { setAttributes( { show_phone } ) } }
|
97 |
/>
|
98 |
+
<CheckboxControl
|
99 |
+
label={ __( 'Show Cell phone number', 'business-profile') }
|
100 |
+
checked={ attributes.show_cell_phone }
|
101 |
+
onChange={ ( show_cell_phone ) => { setAttributes( { show_cell_phone } ) } }
|
102 |
+
/>
|
103 |
+
<CheckboxControl
|
104 |
+
label={ __( 'Show Whatsapp', 'business-profile') }
|
105 |
+
checked={ attributes.show_whatsapp }
|
106 |
+
onChange={ ( show_whatsapp ) => { setAttributes( { show_whatsapp } ) } }
|
107 |
+
/>
|
108 |
+
<CheckboxControl
|
109 |
+
label={ __( 'Show Fax number', 'business-profile') }
|
110 |
+
checked={ attributes.show_fax }
|
111 |
+
onChange={ ( show_fax ) => { setAttributes( { show_fax } ) } }
|
112 |
+
/>
|
113 |
<CheckboxControl
|
114 |
label={ __( 'Show contact details', 'business-profile') }
|
115 |
checked={ attributes.show_contact }
|
assets/js/blocks.build.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(
|
1 |
+
!function(b){function a(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return b[d].call(e.exports,e,e.exports,a),e.l=!0,e.exports}var c={};a.m=b,a.c=c,a.d=function(b,c,d){a.o(b,c)||Object.defineProperty(b,c,{configurable:!1,enumerable:!0,get:d})},a.n=function(c){var b=c&&c.__esModule?function(){return c.default}:function(){return c};return a.d(b,"a",b),b},a.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},a.p="",a(a.s=0)}([function(a,c,b){a.exports=b(1)},function(e,f){var b=wp.i18n.__,c=wp.blocks.registerBlockType,a=wp.components,g=a.SelectControl,h=a.CheckboxControl,i=a.PanelBody,j=a.ServerSideRender,k=a.Disabled,l=wp.editor.InspectorControls,d=bpfwp_blocks,m=d.locationOptions;c("business-profile/contact-card",{title:b("Contact Card","business-profile"),category:"bpfwp-blocks",icon:"location",attributes:{location:{type:"number",default:0},show_name:{type:"boolean",default:!0},show_address:{type:"boolean",default:!0},show_get_directions:{type:"boolean",default:!0},show_phone:{type:"boolean",default:!0},show_cell_phone:{type:"boolean",default:!0},show_whatsapp:{type:"boolean",default:!0},show_fax:{type:"boolean",default:!0},show_contact:{type:"boolean",default:!0},show_opening_hours:{type:"boolean",default:!0},show_opening_hours_brief:{type:"boolean",default:!1},show_map:{type:"boolean",default:!0}},supports:{html:!1},edit:function(c){var a=c.attributes,d=c.setAttributes;return wp.element.createElement("div",null,wp.element.createElement(l,null,wp.element.createElement(i,null,m.length?wp.element.createElement(g,{label:b("Select a Location","business-profile"),value:a.location,onChange:function(a){return d({location:parseInt(a,10)})},options:m}):"",wp.element.createElement(h,{label:b("Show Name","business-profile"),checked:a.show_name,onChange:function(a){d({show_name:a})}}),wp.element.createElement(h,{label:b("Show Address","business-profile"),checked:a.show_address,onChange:function(a){d({show_address:a})}}),wp.element.createElement(h,{label:b("Show link to get directions on Google Maps","business-profile"),checked:a.show_get_directions,onChange:function(a){d({show_get_directions:a})}}),wp.element.createElement(h,{label:b("Show Phone number","business-profile"),checked:a.show_phone,onChange:function(a){d({show_phone:a})}}),wp.element.createElement(h,{label:b("Show Cell phone number","business-profile"),checked:a.show_cell_phone,onChange:function(a){d({show_cell_phone:a})}}),wp.element.createElement(h,{label:b("Show Whatsapp","business-profile"),checked:a.show_whatsapp,onChange:function(a){d({show_whatsapp:a})}}),wp.element.createElement(h,{label:b("Show Fax number","business-profile"),checked:a.show_fax,onChange:function(a){d({show_fax:a})}}),wp.element.createElement(h,{label:b("Show contact details","business-profile"),checked:a.show_contact,onChange:function(a){d({show_contact:a})}}),wp.element.createElement(h,{label:b("Show Opening Hours","business-profile"),checked:a.show_opening_hours,onChange:function(a){d({show_opening_hours:a})}}),wp.element.createElement(h,{label:b("Show brief opening hours on one line","business-profile"),checked:a.show_opening_hours_brief,onChange:function(a){d({show_opening_hours_brief:a})}}),wp.element.createElement(h,{label:b("Show Google Map","business-profile"),checked:a.show_map,onChange:function(a){d({show_map:a})}}))),wp.element.createElement(k,null,wp.element.createElement(j,{block:"business-profile/contact-card",attributes:a})))},save:function(){return null}})}])
|
bpfwp-templates/contact-card.php
CHANGED
@@ -103,7 +103,7 @@
|
|
103 |
foreach ( $data as $data => $callback ) {
|
104 |
|
105 |
$return_array = call_user_func( $callback, bpfwp_get_display( 'location' ) );
|
106 |
-
if ( is_array( $return_array ) ) { $json_ld_data =
|
107 |
}
|
108 |
?>
|
109 |
<script type="application/ld+json">
|
103 |
foreach ( $data as $data => $callback ) {
|
104 |
|
105 |
$return_array = call_user_func( $callback, bpfwp_get_display( 'location' ) );
|
106 |
+
if ( is_array( $return_array ) ) { $json_ld_data = array_merge_recursive( $json_ld_data, $return_array ); }
|
107 |
}
|
108 |
?>
|
109 |
<script type="application/ld+json">
|
bpfwp-templates/opening-hours.php
CHANGED
@@ -15,10 +15,12 @@
|
|
15 |
* @license GPL-2.0+
|
16 |
* @since 1.1.0
|
17 |
*/
|
|
|
|
|
18 |
?>
|
19 |
|
20 |
<div class="bp-opening-hours">
|
21 |
-
<span class="bp-title"><?php
|
22 |
<?php foreach ( $data->weekday_hours as $weekday => $times ) : ?>
|
23 |
<div class="bp-weekday">
|
24 |
<span class="bp-weekday-name bp-weekday-<?php echo esc_attr( $weekday ); ?>"><?php echo esc_html( $data->weekday_names[$weekday] ); ?></span>
|
15 |
* @license GPL-2.0+
|
16 |
* @since 1.1.0
|
17 |
*/
|
18 |
+
|
19 |
+
global $bpfwp_controller;
|
20 |
?>
|
21 |
|
22 |
<div class="bp-opening-hours">
|
23 |
+
<span class="bp-title"><?php echo esc_html( $bpfwp_controller->settings->get_setting( 'label-opening-hours' ) ); ?></span>
|
24 |
<?php foreach ( $data->weekday_hours as $weekday => $times ) : ?>
|
25 |
<div class="bp-weekday">
|
26 |
<span class="bp-weekday-name bp-weekday-<?php echo esc_attr( $weekday ); ?>"><?php echo esc_html( $data->weekday_names[$weekday] ); ?></span>
|
business-profile.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Five Star Business Profile and Schema
|
4 |
* Plugin URI: https://www.fivestarplugins.com/plugins/business-profile/
|
5 |
* Description: Add schema structured data to any page or post type. Create an SEO friendly contact card with your business info and associated schema. Supports Google Map, opening hours and more.
|
6 |
-
* Version: 2.2.
|
7 |
* Author: Five Star Plugins
|
8 |
* Author URI: https://www.fivestarplugins.com
|
9 |
* License: GPLv3
|
@@ -120,7 +120,7 @@ if ( ! class_exists( 'bpfwpInit', false ) ) :
|
|
120 |
define( 'BPFWP_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
121 |
define( 'BPFWP_PLUGIN_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
|
122 |
define( 'BPFWP_PLUGIN_FNAME', plugin_basename( __FILE__ ) );
|
123 |
-
define( 'BPFWP_VERSION', '2.2.
|
124 |
}
|
125 |
|
126 |
/**
|
@@ -132,6 +132,7 @@ if ( ! class_exists( 'bpfwpInit', false ) ) :
|
|
132 |
*/
|
133 |
protected function includes() {
|
134 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-blocks.php';
|
|
|
135 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-compatibility.php';
|
136 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-custom-post-types.php';
|
137 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-deactivation-survey.php';
|
@@ -168,6 +169,7 @@ if ( ! class_exists( 'bpfwpInit', false ) ) :
|
|
168 |
$this->settings = new bpfwpSettings();
|
169 |
$this->cpts = new bpfwpCustomPostTypes();
|
170 |
$this->blocks = new bpfwpBlocks();
|
|
|
171 |
|
172 |
$this->blocks->run();
|
173 |
$this->cpts->run( $this->settings->get_setting('multiple-locations') );
|
3 |
* Plugin Name: Five Star Business Profile and Schema
|
4 |
* Plugin URI: https://www.fivestarplugins.com/plugins/business-profile/
|
5 |
* Description: Add schema structured data to any page or post type. Create an SEO friendly contact card with your business info and associated schema. Supports Google Map, opening hours and more.
|
6 |
+
* Version: 2.2.3
|
7 |
* Author: Five Star Plugins
|
8 |
* Author URI: https://www.fivestarplugins.com
|
9 |
* License: GPLv3
|
120 |
define( 'BPFWP_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
121 |
define( 'BPFWP_PLUGIN_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
|
122 |
define( 'BPFWP_PLUGIN_FNAME', plugin_basename( __FILE__ ) );
|
123 |
+
define( 'BPFWP_VERSION', '2.2.3' );
|
124 |
}
|
125 |
|
126 |
/**
|
132 |
*/
|
133 |
protected function includes() {
|
134 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-blocks.php';
|
135 |
+
require_once BPFWP_PLUGIN_DIR . '/includes/class-patterns.php';
|
136 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-compatibility.php';
|
137 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-custom-post-types.php';
|
138 |
require_once BPFWP_PLUGIN_DIR . '/includes/class-deactivation-survey.php';
|
169 |
$this->settings = new bpfwpSettings();
|
170 |
$this->cpts = new bpfwpCustomPostTypes();
|
171 |
$this->blocks = new bpfwpBlocks();
|
172 |
+
$this->patterns = new bpfwpPatterns();
|
173 |
|
174 |
$this->blocks->run();
|
175 |
$this->cpts->run( $this->settings->get_setting('multiple-locations') );
|
includes/class-blocks.php
CHANGED
@@ -93,6 +93,18 @@ if ( ! class_exists( 'bpfwpBlocks', false ) ) :
|
|
93 |
'type' => 'boolean',
|
94 |
'default' => true,
|
95 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
'show_contact' => array(
|
97 |
'type' => 'boolean',
|
98 |
'default' => true,
|
93 |
'type' => 'boolean',
|
94 |
'default' => true,
|
95 |
),
|
96 |
+
'show_cell_phone' => array(
|
97 |
+
'type' => 'boolean',
|
98 |
+
'default' => true,
|
99 |
+
),
|
100 |
+
'show_whatsapp' => array(
|
101 |
+
'type' => 'boolean',
|
102 |
+
'default' => true,
|
103 |
+
),
|
104 |
+
'show_fax' => array(
|
105 |
+
'type' => 'boolean',
|
106 |
+
'default' => true,
|
107 |
+
),
|
108 |
'show_contact' => array(
|
109 |
'type' => 'boolean',
|
110 |
'default' => true,
|
includes/class-contact-card-widget.php
CHANGED
@@ -40,6 +40,9 @@ if ( ! class_exists( 'bpfwpContactCardWidget', false ) ) :
|
|
40 |
'show_address' => __( 'Show Address', 'business-profile' ),
|
41 |
'show_get_directions' => __( 'Show link to get directions on Google Maps', 'business-profile' ),
|
42 |
'show_phone' => __( 'Show Phone number', 'business-profile' ),
|
|
|
|
|
|
|
43 |
'show_ordering_link' => __( 'Show Ordering Link', 'business-profile' ),
|
44 |
'show_contact' => __( 'Show contact details', 'business-profile' ),
|
45 |
'show_opening_hours' => __( 'Show Opening Hours', 'business-profile' ),
|
@@ -129,7 +132,7 @@ if ( ! class_exists( 'bpfwpContactCardWidget', false ) ) :
|
|
129 |
|
130 |
<?php endif; // Locations. ?>
|
131 |
|
132 |
-
<?php foreach ( $this->toggles as $id => $label ) : ?>
|
133 |
|
134 |
<p>
|
135 |
<input type="checkbox" id="<?php echo esc_attr( $this->get_field_id( $id ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $id ) ); ?>" value="1"<?php if ( ! empty( $instance[ $id ] ) ) : ?> checked="checked"<?php endif; ?>>
|
40 |
'show_address' => __( 'Show Address', 'business-profile' ),
|
41 |
'show_get_directions' => __( 'Show link to get directions on Google Maps', 'business-profile' ),
|
42 |
'show_phone' => __( 'Show Phone number', 'business-profile' ),
|
43 |
+
'show_cell_phone' => __( 'Show Cell phone number', 'business-profile' ),
|
44 |
+
'show_whatsapp' => __( 'Show Whatsapp', 'business-profile' ),
|
45 |
+
'show_fax' => __( 'Show Fax number', 'business-profile' ),
|
46 |
'show_ordering_link' => __( 'Show Ordering Link', 'business-profile' ),
|
47 |
'show_contact' => __( 'Show contact details', 'business-profile' ),
|
48 |
'show_opening_hours' => __( 'Show Opening Hours', 'business-profile' ),
|
132 |
|
133 |
<?php endif; // Locations. ?>
|
134 |
|
135 |
+
<?php print_r($this->toggles, true); foreach ( $this->toggles as $id => $label ) : ?>
|
136 |
|
137 |
<p>
|
138 |
<input type="checkbox" id="<?php echo esc_attr( $this->get_field_id( $id ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $id ) ); ?>" value="1"<?php if ( ! empty( $instance[ $id ] ) ) : ?> checked="checked"<?php endif; ?>>
|
includes/class-custom-post-types.php
CHANGED
@@ -449,6 +449,41 @@ if ( ! class_exists( 'bpfwpCustomPostTypes', false ) ) :
|
|
449 |
<input type="tel" name="clickphone" id="bpfwp_clickphone" value="<?php esc_attr_e( get_post_meta( $post->ID, 'clickphone', true ) ); ?>">
|
450 |
</div>
|
451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
<?php
|
453 |
}
|
454 |
|
@@ -822,6 +857,11 @@ if ( ! class_exists( 'bpfwpCustomPostTypes', false ) ) :
|
|
822 |
'geo_longitude' => 'sanitize_text_field',
|
823 |
'phone' => 'sanitize_text_field',
|
824 |
'clickphone' => 'sanitize_text_field',
|
|
|
|
|
|
|
|
|
|
|
825 |
'contact_post' => 'absint',
|
826 |
'contact_email' => 'sanitize_email',
|
827 |
'opening_hours' => array( $this, 'sanitize_opening_hours' ),
|
449 |
<input type="tel" name="clickphone" id="bpfwp_clickphone" value="<?php esc_attr_e( get_post_meta( $post->ID, 'clickphone', true ) ); ?>">
|
450 |
</div>
|
451 |
|
452 |
+
<div class="bpfwp-meta-input bpfwp-meta-phone">
|
453 |
+
<label for="bpfwp_cell_phone">
|
454 |
+
<?php esc_html_e( 'Cell Phone', 'business-profile' ); ?>
|
455 |
+
</label>
|
456 |
+
<input type="tel" name="cell-phone" id="bpfwp_cell_phone" value="<?php esc_attr_e( get_post_meta( $post->ID, 'cell-phone', true ) ); ?>">
|
457 |
+
</div>
|
458 |
+
|
459 |
+
<div class="bpfwp-meta-input bpfwp-meta-phone">
|
460 |
+
<label for="clickcellphone">
|
461 |
+
<?php esc_html_e( 'Click-to-Call Cell Phone', 'business-profile' ); ?>
|
462 |
+
</label>
|
463 |
+
<input type="tel" name="clickcellphone" id="clickcellphone" value="<?php esc_attr_e( get_post_meta( $post->ID, 'clickcellphone', true ) ); ?>">
|
464 |
+
</div>
|
465 |
+
|
466 |
+
<div class="bpfwp-meta-input bpfwp-meta-phone">
|
467 |
+
<label for="bpfwp_whatsapp">
|
468 |
+
<?php esc_html_e( 'Whatsapp', 'business-profile' ); ?>
|
469 |
+
</label>
|
470 |
+
<input type="tel" name="whatsapp" id="bpfwp_whatsapp" value="<?php esc_attr_e( get_post_meta( $post->ID, 'whatsapp', true ) ); ?>">
|
471 |
+
</div>
|
472 |
+
|
473 |
+
<div class="bpfwp-meta-input bpfwp-meta-phone">
|
474 |
+
<label for="bpfwp_whatsapptxt">
|
475 |
+
<?php esc_html_e( 'Whatsapp Text', 'business-profile' ); ?>
|
476 |
+
</label>
|
477 |
+
<input type="text" name="whatsapptext" id="bpfwp_whatsapptxt" value="<?php esc_attr_e( get_post_meta( $post->ID, 'whatsapptext', true ) ); ?>">
|
478 |
+
</div>
|
479 |
+
|
480 |
+
<div class="bpfwp-meta-input bpfwp-meta-phone">
|
481 |
+
<label for="bpfwp_fax">
|
482 |
+
<?php esc_html_e( 'Fax', 'business-profile' ); ?>
|
483 |
+
</label>
|
484 |
+
<input type="tel" name="fax" id="bpfwp_fax" value="<?php esc_attr_e( get_post_meta( $post->ID, 'fax', true ) ); ?>">
|
485 |
+
</div>
|
486 |
+
|
487 |
<?php
|
488 |
}
|
489 |
|
857 |
'geo_longitude' => 'sanitize_text_field',
|
858 |
'phone' => 'sanitize_text_field',
|
859 |
'clickphone' => 'sanitize_text_field',
|
860 |
+
'cell-phone' => 'sanitize_text_field',
|
861 |
+
'clickcellphone' => 'sanitize_text_field',
|
862 |
+
'whatsapp' => 'sanitize_text_field',
|
863 |
+
'whatsapptext' => 'sanitize_text_field',
|
864 |
+
'fax' => 'sanitize_text_field',
|
865 |
'contact_post' => 'absint',
|
866 |
'contact_email' => 'sanitize_email',
|
867 |
'opening_hours' => array( $this, 'sanitize_opening_hours' ),
|
includes/class-dashboard.php
CHANGED
@@ -247,7 +247,6 @@ class bpfwpDashboard {
|
|
247 |
|
248 |
</div>
|
249 |
<?php } ?>
|
250 |
-
</div>
|
251 |
|
252 |
<!-- <div class="bpfwp-dashboard-new-widget-box ewd-widget-box-full">
|
253 |
<div class="bpfwp-dashboard-new-widget-box-top">Other Plugins by Etoile</div>
|
247 |
|
248 |
</div>
|
249 |
<?php } ?>
|
|
|
250 |
|
251 |
<!-- <div class="bpfwp-dashboard-new-widget-box ewd-widget-box-full">
|
252 |
<div class="bpfwp-dashboard-new-widget-box-top">Other Plugins by Etoile</div>
|
includes/class-patterns.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Methods for handling block patterns
|
4 |
+
*
|
5 |
+
* @package BusinessProfile
|
6 |
+
* @copyright Copyright (c) 2022, Five Star Plugins
|
7 |
+
* @license GPL-2.0+
|
8 |
+
* @since 2.2.3
|
9 |
+
*/
|
10 |
+
|
11 |
+
defined( 'ABSPATH' ) || exit;
|
12 |
+
|
13 |
+
if ( ! class_exists( 'bpfwpPatterns', false ) ) :
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Class to create, edit and display blocks for the Gutenberg editor
|
17 |
+
*
|
18 |
+
* @since 2.2.3
|
19 |
+
*/
|
20 |
+
class bpfwpPatterns {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Add hooks
|
24 |
+
* @since 2.2.3
|
25 |
+
*/
|
26 |
+
public function __construct() {
|
27 |
+
|
28 |
+
add_action( 'init', array( $this, 'bpfwp_add_pattern_category' ) );
|
29 |
+
add_action( 'init', array( $this, 'bpfwp_add_patterns' ) );
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Register block patterns
|
34 |
+
* @since 2.2.3
|
35 |
+
*/
|
36 |
+
public function bpfwp_add_patterns() {
|
37 |
+
|
38 |
+
$block_patterns = array(
|
39 |
+
'contact-card',
|
40 |
+
'phone',
|
41 |
+
'cell-phone',
|
42 |
+
'email',
|
43 |
+
'phone-email',
|
44 |
+
'whatsapp',
|
45 |
+
'fax',
|
46 |
+
'address',
|
47 |
+
'hours',
|
48 |
+
'map',
|
49 |
+
);
|
50 |
+
|
51 |
+
foreach ( $block_patterns as $block_pattern ) {
|
52 |
+
$pattern_file = BPFWP_PLUGIN_DIR . '/includes/patterns/' . $block_pattern . '.php';
|
53 |
+
|
54 |
+
register_block_pattern(
|
55 |
+
'business-profile/' . $block_pattern,
|
56 |
+
require $pattern_file
|
57 |
+
);
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Create a new category of block patterns to hold our pattern(s)
|
63 |
+
* @since 2.2.3
|
64 |
+
*/
|
65 |
+
public function bpfwp_add_pattern_category() {
|
66 |
+
|
67 |
+
register_block_pattern_category(
|
68 |
+
'bpfwp-block-patterns',
|
69 |
+
array(
|
70 |
+
'label' => __( 'Five Star Business Profile & Schema', 'business-profile' )
|
71 |
+
),
|
72 |
+
);
|
73 |
+
}
|
74 |
+
}
|
75 |
+
endif;
|
includes/class-permissions.php
CHANGED
@@ -15,6 +15,7 @@ class bpfwpPermissions {
|
|
15 |
public function __construct() {
|
16 |
$this->plugin_permissions = array(
|
17 |
"premium" => 2,
|
|
|
18 |
"locations" => 2,
|
19 |
"integrations" => 2,
|
20 |
"api_usage" => 2
|
15 |
public function __construct() {
|
16 |
$this->plugin_permissions = array(
|
17 |
"premium" => 2,
|
18 |
+
"labelling" => 2,
|
19 |
"locations" => 2,
|
20 |
"integrations" => 2,
|
21 |
"api_usage" => 2
|
includes/class-schema-cpt.php
CHANGED
@@ -311,20 +311,30 @@ if ( ! class_exists( 'bpfwpSchemaCPT' ) ) :
|
|
311 |
// update the child_depth parameter if in a non-schema field
|
312 |
if ( isset($specified_values[$field_prefix . '_' . $field->slug]) and is_array($specified_values[$field_prefix . '_' . $field->slug]) ) { $child_depth = sizeOf( $specified_values[$field_prefix . '_' . $field->slug] ); }
|
313 |
|
314 |
-
echo '<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
|
316 |
-
echo '<textarea name="' . esc_attr( $this->schema_type . '[' . $field_prefix . '_' . $field->slug . '][' . $count ) . ']" placeholder="' . ( isset($placeholder) ? esc_attr( $placeholder ) : "" ) . '">';
|
317 |
-
echo isset($value) ? esc_textarea( $value ) : '';
|
318 |
-
echo '</textarea>';
|
319 |
break;
|
320 |
|
321 |
default:
|
322 |
// update the child_depth parameter if in a non-schema field
|
323 |
if ( isset($specified_values[$field_prefix . '_' . $field->slug]) and is_array($specified_values[$field_prefix . '_' . $field->slug]) ) { $child_depth = sizeOf( $specified_values[$field_prefix . '_' . $field->slug] ); }
|
324 |
|
325 |
-
echo '<
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
|
327 |
-
echo '<input type="' . esc_attr( $field->input ) . '" name="' . esc_attr( $this->schema_type ) . '[' . esc_attr( $field_prefix ) . '_' . esc_attr( $field->slug ) . '][' . esc_attr( $count ) . ']" placeholder="' . ( isset($placeholder) ? esc_attr( $placeholder ) : '' ) . '" value="' . ( isset($value) ? esc_attr( $value ) : '' ) . '" />';
|
328 |
}
|
329 |
|
330 |
return $child_depth;
|
311 |
// update the child_depth parameter if in a non-schema field
|
312 |
if ( isset($specified_values[$field_prefix . '_' . $field->slug]) and is_array($specified_values[$field_prefix . '_' . $field->slug]) ) { $child_depth = sizeOf( $specified_values[$field_prefix . '_' . $field->slug] ); }
|
313 |
|
314 |
+
echo '<div class="bpfwp-schema-field-container" data-field_name="' . esc_attr( $field->name ) . '">';
|
315 |
+
|
316 |
+
echo '<label class="' . ( $field->recommended ? 'recommended' : '' ) . '" for="' . esc_attr( $this->schema_type ) . '[' . esc_attr( $field_prefix ) . '_' . esc_attr( $field->slug ) . '][' . esc_attr( $count ) . ']">' . esc_html( $field->name ) . '</label>';
|
317 |
+
|
318 |
+
echo '<textarea name="' . esc_attr( $this->schema_type . '[' . $field_prefix . '_' . $field->slug . '][' . $count ) . ']" placeholder="' . ( isset($placeholder) ? esc_attr( $placeholder ) : "" ) . '">';
|
319 |
+
echo isset($value) ? esc_textarea( $value ) : '';
|
320 |
+
echo '</textarea>';
|
321 |
+
|
322 |
+
echo '</div>';
|
323 |
|
|
|
|
|
|
|
324 |
break;
|
325 |
|
326 |
default:
|
327 |
// update the child_depth parameter if in a non-schema field
|
328 |
if ( isset($specified_values[$field_prefix . '_' . $field->slug]) and is_array($specified_values[$field_prefix . '_' . $field->slug]) ) { $child_depth = sizeOf( $specified_values[$field_prefix . '_' . $field->slug] ); }
|
329 |
|
330 |
+
echo '<div class="bpfwp-schema-field-container" data-field_name="' . esc_attr( $field->name ) . '">';
|
331 |
+
|
332 |
+
echo '<label class="' . ( $field->recommended ? 'recommended' : '' ) . '" for="' . esc_attr( $this->schema_type ) . '[' . esc_attr( $field_prefix ) . '_' . esc_attr( $field->slug ) . '][' . esc_attr( $count ) . ']">' . esc_html( $field->name ) . '</label>';
|
333 |
+
|
334 |
+
echo '<input type="' . esc_attr( $field->input ) . '" name="' . esc_attr( $this->schema_type ) . '[' . esc_attr( $field_prefix ) . '_' . esc_attr( $field->slug ) . '][' . esc_attr( $count ) . ']" placeholder="' . ( isset($placeholder) ? esc_attr( $placeholder ) : '' ) . '" value="' . ( isset($value) ? esc_attr( $value ) : '' ) . '" />';
|
335 |
+
|
336 |
+
echo '</div>';
|
337 |
|
|
|
338 |
}
|
339 |
|
340 |
return $child_depth;
|
includes/class-settings.php
CHANGED
@@ -75,6 +75,54 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
75 |
$this->defaults = array(
|
76 |
'schema_type' => 'Organization',
|
77 |
'name' => get_bloginfo( 'name' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
);
|
79 |
|
80 |
$this->defaults = apply_filters( 'bpfwp_defaults', $this->defaults, $this );
|
@@ -105,6 +153,9 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
105 |
'show_address' => true,
|
106 |
'show_get_directions' => true,
|
107 |
'show_phone' => true,
|
|
|
|
|
|
|
108 |
'show_ordering_link' => true,
|
109 |
'show_contact' => true,
|
110 |
'show_opening_hours' => true,
|
@@ -189,6 +240,11 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
189 |
}
|
190 |
break;
|
191 |
|
|
|
|
|
|
|
|
|
|
|
192 |
case 'exceptions' :
|
193 |
case 'schema_type' :
|
194 |
case 'phone' :
|
@@ -453,6 +509,79 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
453 |
)
|
454 |
);
|
455 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
$sap->add_setting(
|
457 |
'bpfwp-settings',
|
458 |
'bpfwp-contact',
|
@@ -529,8 +658,8 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
529 |
'saturday' => _x( 'Sa', 'Saturday abbreviation', 'business-profile' ),
|
530 |
'sunday' => _x( 'Su', 'Sunday abbreviation', 'business-profile' ),
|
531 |
),
|
532 |
-
'time_format' =>
|
533 |
-
'date_format' =>
|
534 |
'disable_weeks' => true,
|
535 |
'disable_date' => true,
|
536 |
'strings' => array(
|
@@ -572,8 +701,8 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
572 |
'id' => 'exceptions',
|
573 |
'title' => __( 'Exceptions', 'business-profile' ),
|
574 |
'description' => __( '<strong>This feature requires at least version 5.3 of WordPress.</strong> Define special opening hours for holidays, events or other needs. Leave the time empty if you\'re closed all day.', 'business-profile' ),
|
575 |
-
'time_format' =>
|
576 |
-
'date_format' =>
|
577 |
'disable_weekdays' => true,
|
578 |
'disable_weeks' => true,
|
579 |
'strings' => array(
|
@@ -603,6 +732,30 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
603 |
),
|
604 |
)
|
605 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
606 |
|
607 |
$sap->add_section(
|
608 |
'bpfwp-settings',
|
@@ -700,6 +853,25 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
700 |
'callback' => $this->premium_info( 'premium' )
|
701 |
)
|
702 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
703 |
|
704 |
$sap = apply_filters( 'bpfwp_settings_page', $sap, $this );
|
705 |
|
@@ -759,6 +931,21 @@ if ( ! class_exists( 'bpfwpSettings' ) ) :
|
|
759 |
</div>
|
760 |
';
|
761 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
762 |
break;
|
763 |
}
|
764 |
|
75 |
$this->defaults = array(
|
76 |
'schema_type' => 'Organization',
|
77 |
'name' => get_bloginfo( 'name' ),
|
78 |
+
'time-format' => _x( 'h:i A', 'Time format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/time.htm#formats', 'business-profile' ),
|
79 |
+
'date-format' => _x( 'mmmm d, yyyy', 'Date format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/date.htm#formatting-rules', 'business-profile' ),
|
80 |
+
|
81 |
+
'contact-card-elements-order' => json_encode(
|
82 |
+
array(
|
83 |
+
'name' => __( 'Name', 'business-profile' ),
|
84 |
+
'address' => __( 'Address', 'business-profile' ),
|
85 |
+
'phone' => __( 'Phone', 'business-profile' ),
|
86 |
+
'cell_phone' => __( 'Cell Phone', 'business-profile' ),
|
87 |
+
'whatsapp' => __( 'WhatsApp', 'business-profile' ),
|
88 |
+
'fax_phone' => __( 'Fax', 'business-profile' ),
|
89 |
+
'ordering-link' => __( 'Ordering Link', 'business-profile' ),
|
90 |
+
'contact' => __( 'Contact', 'business-profile' ),
|
91 |
+
'exceptions' => __( 'Exceptions', 'business-profile' ),
|
92 |
+
'opening_hours' => __( 'Opening Hours', 'business-profile' ),
|
93 |
+
'map' => __( 'Maps', 'business-profile' ),
|
94 |
+
'parent_organization' => __( 'Parent Organization', 'business-profile' )
|
95 |
+
)
|
96 |
+
),
|
97 |
+
|
98 |
+
'label-opening-hours' => __( 'Opening Hours', 'business-profile' ),
|
99 |
+
'label-place-an-order' => __( 'Place an Order', 'business-profile' ),
|
100 |
+
'label-get-directions' => __( 'Get Directions', 'business-profile' ),
|
101 |
+
'label-contact' => __( 'Contact', 'business-profile' ),
|
102 |
+
|
103 |
+
'label-monday' => __( 'Monday', 'business-profile' ),
|
104 |
+
'label-tuesday' => __( 'Tuesday', 'business-profile' ),
|
105 |
+
'label-wednesday' => __( 'Wednesday', 'business-profile' ),
|
106 |
+
'label-thursday' => __( 'Thursday', 'business-profile' ),
|
107 |
+
'label-friday' => __( 'Friday', 'business-profile' ),
|
108 |
+
'label-saturday' => __( 'Saturday', 'business-profile' ),
|
109 |
+
'label-sunday' => __( 'Sunday', 'business-profile' ),
|
110 |
+
|
111 |
+
'label-monday-abbreviation' => __( 'Mo', 'business-profile' ),
|
112 |
+
'label-tuesday-abbreviation' => __( 'Tu', 'business-profile' ),
|
113 |
+
'label-wednesday-abbreviation' => __( 'We', 'business-profile' ),
|
114 |
+
'label-thursday-abbreviation' => __( 'Th', 'business-profile' ),
|
115 |
+
'label-friday-abbreviation' => __( 'Fr', 'business-profile' ),
|
116 |
+
'label-saturday-abbreviation' => __( 'Sa', 'business-profile' ),
|
117 |
+
'label-sunday-abbreviation' => __( 'Su', 'business-profile' ),
|
118 |
+
|
119 |
+
'label-open' => __( 'Open', 'business-profile' ),
|
120 |
+
'label-open-until' => __( 'Open until', 'business-profile' ),
|
121 |
+
'label-open-from' => __( 'Open from', 'business-profile' ),
|
122 |
+
'label-closed' => __( 'Closed', 'business-profile' ),
|
123 |
+
|
124 |
+
'label-special-opening-hours' => __( 'Special Opening Hours', 'business-profile' ),
|
125 |
+
'label-holidays' => __( 'Holidays', 'business-profile' ),
|
126 |
);
|
127 |
|
128 |
$this->defaults = apply_filters( 'bpfwp_defaults', $this->defaults, $this );
|
153 |
'show_address' => true,
|
154 |
'show_get_directions' => true,
|
155 |
'show_phone' => true,
|
156 |
+
'show_cell_phone' => true,
|
157 |
+
'show_whatsapp' => true,
|
158 |
+
'show_fax' => true,
|
159 |
'show_ordering_link' => true,
|
160 |
'show_contact' => true,
|
161 |
'show_opening_hours' => true,
|
240 |
}
|
241 |
break;
|
242 |
|
243 |
+
case 'cell-phone' :
|
244 |
+
case 'clickcellphone' :
|
245 |
+
case 'whatsapp' :
|
246 |
+
case 'whatsapptext' :
|
247 |
+
case 'fax' :
|
248 |
case 'exceptions' :
|
249 |
case 'schema_type' :
|
250 |
case 'phone' :
|
509 |
)
|
510 |
);
|
511 |
|
512 |
+
$sap->add_setting(
|
513 |
+
'bpfwp-settings',
|
514 |
+
'bpfwp-contact',
|
515 |
+
'text',
|
516 |
+
array(
|
517 |
+
'id' => 'cell-phone',
|
518 |
+
'title' => __( 'Cell Phone', 'business-profile' ),
|
519 |
+
'args' => array(
|
520 |
+
'label_for' => 'bpfwp-settings[phone]',
|
521 |
+
'class' => 'bpfwp-phone'
|
522 |
+
)
|
523 |
+
)
|
524 |
+
);
|
525 |
+
|
526 |
+
$sap->add_setting(
|
527 |
+
'bpfwp-settings',
|
528 |
+
'bpfwp-contact',
|
529 |
+
'text',
|
530 |
+
array(
|
531 |
+
'id' => 'clickcellphone',
|
532 |
+
'title' => __( 'Click-to-Call Cell Phone', 'business-profile' ),
|
533 |
+
'description' => __( 'Use this field to set a different number for when the cell phone number is clicked in the contact card (e.g. if you\'d like it to be just an unformatted string of numbers). If left blank, the click-to-call will use the cell phone number provided in the option above.', 'business-profile' ),
|
534 |
+
'args' => array(
|
535 |
+
'label_for' => 'bpfwp-settings[clickphone]',
|
536 |
+
'class' => 'bpfwp-clickphone'
|
537 |
+
)
|
538 |
+
)
|
539 |
+
);
|
540 |
+
|
541 |
+
$sap->add_setting(
|
542 |
+
'bpfwp-settings',
|
543 |
+
'bpfwp-contact',
|
544 |
+
'text',
|
545 |
+
array(
|
546 |
+
'id' => 'whatsapp',
|
547 |
+
'title' => __( 'Whatsapp', 'business-profile' ),
|
548 |
+
'description' => __( 'This is a full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.<br>Examples:<br>Use: 1XXXXXXXXXX<br>Don\'t use: +001-(XXX)XXXXXXX', 'business-profile' ),
|
549 |
+
'args' => array(
|
550 |
+
'label_for' => 'bpfwp-settings[phone]',
|
551 |
+
'class' => 'bpfwp-phone'
|
552 |
+
)
|
553 |
+
)
|
554 |
+
);
|
555 |
+
|
556 |
+
$sap->add_setting(
|
557 |
+
'bpfwp-settings',
|
558 |
+
'bpfwp-contact',
|
559 |
+
'text',
|
560 |
+
array(
|
561 |
+
'id' => 'whatsapptext',
|
562 |
+
'title' => __( 'Whatsapp Text', 'business-profile' ),
|
563 |
+
'description' => __( 'The pre-filled message will automatically appear in the text field of a chat.', 'business-profile' ),
|
564 |
+
'args' => array(
|
565 |
+
'label_for' => 'bpfwp-settings[clickphone]',
|
566 |
+
'class' => 'bpfwp-clickphone'
|
567 |
+
)
|
568 |
+
)
|
569 |
+
);
|
570 |
+
|
571 |
+
$sap->add_setting(
|
572 |
+
'bpfwp-settings',
|
573 |
+
'bpfwp-contact',
|
574 |
+
'text',
|
575 |
+
array(
|
576 |
+
'id' => 'fax',
|
577 |
+
'title' => __( 'Fax', 'business-profile' ),
|
578 |
+
'args' => array(
|
579 |
+
'label_for' => 'bpfwp-settings[phone]',
|
580 |
+
'class' => 'bpfwp-phone'
|
581 |
+
)
|
582 |
+
)
|
583 |
+
);
|
584 |
+
|
585 |
$sap->add_setting(
|
586 |
'bpfwp-settings',
|
587 |
'bpfwp-contact',
|
658 |
'saturday' => _x( 'Sa', 'Saturday abbreviation', 'business-profile' ),
|
659 |
'sunday' => _x( 'Su', 'Sunday abbreviation', 'business-profile' ),
|
660 |
),
|
661 |
+
'time_format' => $this->get_setting( 'time-format' ),
|
662 |
+
'date_format' => $this->get_setting( 'date-format' ),
|
663 |
'disable_weeks' => true,
|
664 |
'disable_date' => true,
|
665 |
'strings' => array(
|
701 |
'id' => 'exceptions',
|
702 |
'title' => __( 'Exceptions', 'business-profile' ),
|
703 |
'description' => __( '<strong>This feature requires at least version 5.3 of WordPress.</strong> Define special opening hours for holidays, events or other needs. Leave the time empty if you\'re closed all day.', 'business-profile' ),
|
704 |
+
'time_format' => $this->get_setting( 'time-format' ),
|
705 |
+
'date_format' => $this->get_setting( 'date-format' ),
|
706 |
'disable_weekdays' => true,
|
707 |
'disable_weeks' => true,
|
708 |
'strings' => array(
|
732 |
),
|
733 |
)
|
734 |
);
|
735 |
+
|
736 |
+
$sap->add_setting(
|
737 |
+
'bpfwp-settings',
|
738 |
+
'bpfwp-schedule',
|
739 |
+
'text',
|
740 |
+
array(
|
741 |
+
'id' => 'date-format',
|
742 |
+
'title' => __( 'Date Format', 'business-profile' ),
|
743 |
+
'description' => __( 'Date format displayed in the opening hours setting panel in your admin area. Must match formatting rules at https://amsul.ca/pickadate.js/date/#formats', 'business-profile' ),
|
744 |
+
'placeholder' => $this->defaults['date-format'],
|
745 |
+
)
|
746 |
+
);
|
747 |
+
|
748 |
+
$sap->add_setting(
|
749 |
+
'bpfwp-settings',
|
750 |
+
'bpfwp-schedule',
|
751 |
+
'text',
|
752 |
+
array(
|
753 |
+
'id' => 'time-format',
|
754 |
+
'title' => __( 'Time Format', 'business-profile' ),
|
755 |
+
'description' => __( 'Time format displayed in the opening hours setting panel in your admin area. Must match formatting rules at https://amsul.ca/pickadate.js/time/#formats. (The time format on the front end uses your WordPress settings.)', 'business-profile' ),
|
756 |
+
'placeholder' => $this->defaults['time-format'],
|
757 |
+
)
|
758 |
+
);
|
759 |
|
760 |
$sap->add_section(
|
761 |
'bpfwp-settings',
|
853 |
'callback' => $this->premium_info( 'premium' )
|
854 |
)
|
855 |
);
|
856 |
+
|
857 |
+
// "Labelling" Tab
|
858 |
+
$sap->add_section(
|
859 |
+
'bpfwp-settings',
|
860 |
+
array(
|
861 |
+
'id' => 'bpfwp-labelling-tab',
|
862 |
+
'title' => __( 'Labelling', 'business-profile' ),
|
863 |
+
'is_tab' => true,
|
864 |
+
'show_submit_button' => $this->show_submit_button( 'labelling' )
|
865 |
+
)
|
866 |
+
);
|
867 |
+
$sap->add_section(
|
868 |
+
'bpfwp-settings',
|
869 |
+
array(
|
870 |
+
'id' => 'bpfwp-labelling-tab-body',
|
871 |
+
'tab' => 'bpfwp-labelling-tab',
|
872 |
+
'callback' => $this->premium_info( 'labelling' )
|
873 |
+
)
|
874 |
+
);
|
875 |
|
876 |
$sap = apply_filters( 'bpfwp_settings_page', $sap, $this );
|
877 |
|
931 |
</div>
|
932 |
';
|
933 |
|
934 |
+
break;
|
935 |
+
|
936 |
+
case 'labelling':
|
937 |
+
|
938 |
+
$content = '
|
939 |
+
<div class="bpfwp-settings-preview">
|
940 |
+
<h2>' . __( 'Labelling', 'business-profile' ) . '<span>' . __( 'Premium', 'business-profile' ) . '</span></h2>
|
941 |
+
<p>' . __( 'The labelling options let you change the wording of the different labels that appear on the front end of the plugin. You can use this to translate them, customize the wording for your purpose, etc.', 'business-profile' ) . '</p>
|
942 |
+
<div class="bpfwp-settings-preview-images">
|
943 |
+
<img src="' . BPFWP_PLUGIN_URL . '/assets/img/premium-screenshots/labelling1.png" alt="BPFWP labelling screenshot" />
|
944 |
+
</div>
|
945 |
+
' . $premium_features . '
|
946 |
+
</div>
|
947 |
+
';
|
948 |
+
|
949 |
break;
|
950 |
}
|
951 |
|
includes/patterns/address.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Address
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Address', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays the address from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-address"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-address"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/cell-phone.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Cell Phone
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Cell Phone Number', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the (clickable) cell phone number from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-cell-phone"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-cell-phone"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/contact-card.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contact card
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Contact Card', 'business-profile' ),
|
7 |
+
'description' => _x( 'Adds a contact card', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-contact-card"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-contact-card"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/email.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Email
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Email Address', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the email address from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-email"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-email"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/fax.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fax
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Fax', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the fax number from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-fax"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-fax"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/hours.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Opening Hours
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Opening Hours', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays the opening hours from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-hours"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-hours"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/map.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Map
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Map', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the map from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-map"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-map"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/phone-email.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Phone and Email
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Phone and Email', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays the (clickable) phone number and email address from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-phone-email"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-phone-email"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/phone.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Phone
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Phone Number', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the (clickable) phone number from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-phone"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-phone"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/patterns/whatsapp.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Whatsapp
|
4 |
+
*/
|
5 |
+
return array(
|
6 |
+
'title' => __( 'Whatsapp', 'business-profile' ),
|
7 |
+
'description' => _x( 'Displays just the (clickable) Whatsapp number from your contact card.', 'Block pattern description', 'business-profile' ),
|
8 |
+
'categories' => array( 'bpfwp-block-patterns' ),
|
9 |
+
'content' => '<!-- wp:group {"className":"bpfwp-pattern-whatsapp"} -->
|
10 |
+
<div class="wp-block-group bpfwp-pattern-whatsapp"><!-- wp:business-profile/contact-card /--></div>
|
11 |
+
<!-- /wp:group -->',
|
12 |
+
);
|
includes/template-functions.php
CHANGED
@@ -105,17 +105,7 @@ if ( ! function_exists( 'bpwfwp_print_contact_card' ) ) {
|
|
105 |
// Setup components and callback functions to render them.
|
106 |
$data = apply_filters(
|
107 |
'bpwfwp_component_callbacks',
|
108 |
-
|
109 |
-
'name' => 'bpwfwp_print_name',
|
110 |
-
'address' => 'bpwfwp_print_address',
|
111 |
-
'phone' => 'bpwfwp_print_phone',
|
112 |
-
'ordering-link' => 'bpfwp_print_ordering_link',
|
113 |
-
'contact' => 'bpwfwp_print_contact',
|
114 |
-
'exceptions' => 'bpwfwp_print_exceptions',
|
115 |
-
'opening_hours' => 'bpwfwp_print_opening_hours', // opening-hours
|
116 |
-
'map' => 'bpwfwp_print_map',
|
117 |
-
'parent_organization' => 'bpfwp_print_parent_organization'
|
118 |
-
)
|
119 |
);
|
120 |
|
121 |
if ( ! $bpfwp_controller->get_theme_support( 'disable_styles' ) ) {
|
@@ -283,7 +273,14 @@ if ( ! function_exists( 'bpwfwp_print_phone' ) ) {
|
|
283 |
*/
|
284 |
function bpwfwp_print_phone( $location = false ) {
|
285 |
|
286 |
-
$return_data = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
|
288 |
$phone = bpfwp_setting( 'phone', $location );
|
289 |
$click_to_call_phone = bpfwp_setting( 'clickphone', $location );
|
@@ -299,12 +296,135 @@ if ( ! function_exists( 'bpwfwp_print_phone' ) ) {
|
|
299 |
if ( bpfwp_get_display( 'show_phone' ) ) : ?>
|
300 |
|
301 |
<div class="bp-phone">
|
302 |
-
<a href="tel:<?php echo esc_attr( $click_to_call_phone ); ?>"><?php echo esc_html(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
</div>
|
304 |
|
305 |
<?php endif;
|
306 |
|
307 |
-
$return_data['
|
308 |
|
309 |
return $return_data;
|
310 |
}
|
@@ -352,8 +472,10 @@ if ( ! function_exists( 'bpwfwp_print_contact' ) ) {
|
|
352 |
|
353 |
<?php
|
354 |
$return_data['ContactPoint'] = array(
|
355 |
-
|
356 |
-
|
|
|
|
|
357 |
);
|
358 |
|
359 |
endif;
|
@@ -852,6 +974,28 @@ if ( ! function_exists( 'bpfwp_print_parent_organization' ) ) {
|
|
852 |
}
|
853 |
}
|
854 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
855 |
if ( ! function_exists( 'bpfwp_json_ld_contact_print' ) ) {
|
856 |
/**
|
857 |
* Recursively print out an array of $key => $value pairs of json+ld data
|
105 |
// Setup components and callback functions to render them.
|
106 |
$data = apply_filters(
|
107 |
'bpwfwp_component_callbacks',
|
108 |
+
bpfwp_get_contact_card_fields()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
);
|
110 |
|
111 |
if ( ! $bpfwp_controller->get_theme_support( 'disable_styles' ) ) {
|
273 |
*/
|
274 |
function bpwfwp_print_phone( $location = false ) {
|
275 |
|
276 |
+
$return_data = array(
|
277 |
+
'contactPoint' => array(
|
278 |
+
array(
|
279 |
+
'@type' => 'ContactPoint',
|
280 |
+
'contactType' => 'Telephone'
|
281 |
+
)
|
282 |
+
)
|
283 |
+
);
|
284 |
|
285 |
$phone = bpfwp_setting( 'phone', $location );
|
286 |
$click_to_call_phone = bpfwp_setting( 'clickphone', $location );
|
296 |
if ( bpfwp_get_display( 'show_phone' ) ) : ?>
|
297 |
|
298 |
<div class="bp-phone">
|
299 |
+
<a href="tel:<?php echo esc_attr( $click_to_call_phone ); ?>"><?php echo esc_html( $phone ); ?></a>
|
300 |
+
</div>
|
301 |
+
|
302 |
+
<?php endif;
|
303 |
+
|
304 |
+
$return_data['contactPoint'][0]['telephone'] = $phone;
|
305 |
+
|
306 |
+
return $return_data;
|
307 |
+
}
|
308 |
+
}
|
309 |
+
|
310 |
+
if ( ! function_exists( 'bpwfwp_print_cell_phone' ) ) {
|
311 |
+
/**
|
312 |
+
* Print the phone number.
|
313 |
+
*
|
314 |
+
* @since 2.2.3
|
315 |
+
* @access public
|
316 |
+
* @param string $location The location associated with the phone.
|
317 |
+
* @return array
|
318 |
+
*/
|
319 |
+
function bpwfwp_print_cell_phone( $location = false ) {
|
320 |
+
|
321 |
+
$return_data = array(
|
322 |
+
'contactPoint' => array(
|
323 |
+
array(
|
324 |
+
'@type' => 'ContactPoint',
|
325 |
+
'contactType' => 'Cell Phone'
|
326 |
+
)
|
327 |
+
)
|
328 |
+
);
|
329 |
+
|
330 |
+
$cell_phone = bpfwp_setting( 'cell-phone', $location );
|
331 |
+
$click_to_call_phone = bpfwp_setting( 'clickcellphone', $location );
|
332 |
+
|
333 |
+
if ( $click_to_call_phone == '' ) {
|
334 |
+
$click_to_call_phone = $cell_phone;
|
335 |
+
}
|
336 |
+
|
337 |
+
if ( empty( $cell_phone ) ) {
|
338 |
+
return '';
|
339 |
+
}
|
340 |
+
|
341 |
+
if ( bpfwp_get_display( 'show_cell_phone' ) ) : ?>
|
342 |
+
|
343 |
+
<div class="bp-cell-phone">
|
344 |
+
<a href="tel:<?php echo esc_attr( $click_to_call_phone ); ?>"><?php echo esc_html( $cell_phone ); ?></a>
|
345 |
+
</div>
|
346 |
+
|
347 |
+
<?php endif;
|
348 |
+
|
349 |
+
$return_data['contactPoint'][0]['telephone'] = $cell_phone;
|
350 |
+
|
351 |
+
return $return_data;
|
352 |
+
}
|
353 |
+
}
|
354 |
+
|
355 |
+
if ( ! function_exists( 'bpwfwp_print_whatsapp_phone' ) ) {
|
356 |
+
/**
|
357 |
+
* Print the phone number.
|
358 |
+
*
|
359 |
+
* @since 2.2.3
|
360 |
+
* @access public
|
361 |
+
* @param string $location The location associated with the whatsapp.
|
362 |
+
* @return array
|
363 |
+
*/
|
364 |
+
function bpwfwp_print_whatsapp_phone( $location = false ) {
|
365 |
+
|
366 |
+
$return_data = array(
|
367 |
+
'contactPoint' => array(
|
368 |
+
array(
|
369 |
+
'@type' => 'ContactPoint',
|
370 |
+
'contactType' => 'Whatsapp'
|
371 |
+
)
|
372 |
+
)
|
373 |
+
);
|
374 |
+
|
375 |
+
$whatsapp = bpfwp_setting( 'whatsapp', $location );
|
376 |
+
$whatsapp_txt = bpfwp_setting( 'whatsapptext', $location );
|
377 |
+
|
378 |
+
if ( empty( $whatsapp ) ) {
|
379 |
+
return '';
|
380 |
+
}
|
381 |
+
|
382 |
+
if( !empty( $whatsapp_txt ) ) {
|
383 |
+
$whatsapp_txt = '?text='.urlencode( $whatsapp_txt );
|
384 |
+
}
|
385 |
+
|
386 |
+
if ( bpfwp_get_display( 'show_whatsapp' ) ) : ?>
|
387 |
+
|
388 |
+
<div class="bp-whatsapp">
|
389 |
+
<a href="https://wa.me/<?php echo esc_attr( $whatsapp . $whatsapp_txt ); ?>"><?php echo esc_html( $whatsapp ); ?></a>
|
390 |
+
</div>
|
391 |
+
|
392 |
+
<?php endif;
|
393 |
+
|
394 |
+
$return_data['contactPoint'][0]['telephone'] = $whatsapp;
|
395 |
+
|
396 |
+
return $return_data;
|
397 |
+
}
|
398 |
+
}
|
399 |
+
|
400 |
+
if ( ! function_exists( 'bpwfwp_print_fax' ) ) {
|
401 |
+
/**
|
402 |
+
* Print the phone number.
|
403 |
+
*
|
404 |
+
* @since 2.2.3
|
405 |
+
* @access public
|
406 |
+
* @param string $location The location associated with the fax number.
|
407 |
+
* @return array
|
408 |
+
*/
|
409 |
+
function bpwfwp_print_fax( $location = false ) {
|
410 |
+
|
411 |
+
$return_data = array();
|
412 |
+
|
413 |
+
$fax = bpfwp_setting( 'fax', $location );
|
414 |
+
|
415 |
+
if ( empty( $fax ) ) {
|
416 |
+
return '';
|
417 |
+
}
|
418 |
+
|
419 |
+
if ( bpfwp_get_display( 'show_fax' ) ) : ?>
|
420 |
+
|
421 |
+
<div class="bp-fax">
|
422 |
+
<a href="fax:<?php echo esc_attr( $fax ); ?>"><?php echo esc_html( $fax ); ?></a>
|
423 |
</div>
|
424 |
|
425 |
<?php endif;
|
426 |
|
427 |
+
$return_data['faxNumber'] = $fax;
|
428 |
|
429 |
return $return_data;
|
430 |
}
|
472 |
|
473 |
<?php
|
474 |
$return_data['ContactPoint'] = array(
|
475 |
+
array(
|
476 |
+
'contactType' => 'customer support',
|
477 |
+
'url' => get_permalink( $contact ),
|
478 |
+
)
|
479 |
);
|
480 |
|
481 |
endif;
|
974 |
}
|
975 |
}
|
976 |
|
977 |
+
function bpfwp_get_contact_card_fields() {
|
978 |
+
global $bpfwp_controller;
|
979 |
+
|
980 |
+
return array_replace(
|
981 |
+
(array) json_decode( $bpfwp_controller->settings->get_setting( 'contact-card-elements-order' ) ),
|
982 |
+
array(
|
983 |
+
'name' => 'bpwfwp_print_name',
|
984 |
+
'address' => 'bpwfwp_print_address',
|
985 |
+
'phone' => 'bpwfwp_print_phone',
|
986 |
+
'cell_phone' => 'bpwfwp_print_cell_phone',
|
987 |
+
'whatsapp' => 'bpwfwp_print_whatsapp_phone',
|
988 |
+
'fax_phone' => 'bpwfwp_print_fax',
|
989 |
+
'ordering-link' => 'bpfwp_print_ordering_link',
|
990 |
+
'contact' => 'bpwfwp_print_contact',
|
991 |
+
'exceptions' => 'bpwfwp_print_exceptions',
|
992 |
+
'opening_hours' => 'bpwfwp_print_opening_hours', // opening-hours
|
993 |
+
'map' => 'bpwfwp_print_map',
|
994 |
+
'parent_organization' => 'bpfwp_print_parent_organization'
|
995 |
+
)
|
996 |
+
);
|
997 |
+
}
|
998 |
+
|
999 |
if ( ! function_exists( 'bpfwp_json_ld_contact_print' ) ) {
|
1000 |
/**
|
1001 |
* Recursively print out an array of $key => $value pairs of json+ld data
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Plugin URL: https://www.fivestarplugins.com/plugins/business-profile/
|
|
5 |
Requires at Least: 5.3
|
6 |
Tested Up To: 6.0
|
7 |
Tags: business profile, seo, local seo, schema, address, google map, contact, phone, contact card, vcard, contact info, business location, business address, business map, business schema, organization schema, corporation schema, contact schema, address schema, location schema, map schema, business structured data, business microdata, address microdata, location structured data, location microdata, contact shortcode, location shortcode, address shortcode, schema shortcode, gutenberg schema, gutenberg address
|
8 |
-
Stable tag: 2.2.
|
9 |
License: GPLv3
|
10 |
License URI:http://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -192,6 +192,13 @@ You'll find more help in the [User Guide](http://doc.themeofthecrop.com/plugins/
|
|
192 |
|
193 |
== Changelog ==
|
194 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
= 2.2.2 (2022-05-20) =
|
196 |
- Tested with WordPress 6.0.
|
197 |
|
5 |
Requires at Least: 5.3
|
6 |
Tested Up To: 6.0
|
7 |
Tags: business profile, seo, local seo, schema, address, google map, contact, phone, contact card, vcard, contact info, business location, business address, business map, business schema, organization schema, corporation schema, contact schema, address schema, location schema, map schema, business structured data, business microdata, address microdata, location structured data, location microdata, contact shortcode, location shortcode, address shortcode, schema shortcode, gutenberg schema, gutenberg address
|
8 |
+
Stable tag: 2.2.3
|
9 |
License: GPLv3
|
10 |
License URI:http://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
192 |
|
193 |
== Changelog ==
|
194 |
|
195 |
+
= 2.2.3 (2022-08-03) =
|
196 |
+
- Introducing new block patterns, which can be used to integrate contact card info directly into your block-based theme templates.
|
197 |
+
- Added fields for cell phone, fax and Whatsapp.
|
198 |
+
- Added a new (premium) option that lets you re-order the elements in the contact card.
|
199 |
+
- Added in date and time formatting options for the scheduler in the admin.
|
200 |
+
- Fixed some issues with the layout/styling of the schema meta box on the post and product (WooCommerce) edit screens.
|
201 |
+
|
202 |
= 2.2.2 (2022-05-20) =
|
203 |
- Tested with WordPress 6.0.
|
204 |
|