You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

337 lines
10 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* The local SEO settings.
*
* @package RankMath
* @subpackage RankMath\Local_Seo
*/
use RankMath\Helper;
use RankMath\KB;
defined( 'ABSPATH' ) || exit;
$rank_math_company = [ [ 'knowledgegraph_type', 'company' ] ];
$rank_math_person = [ [ 'knowledgegraph_type', 'person' ] ];
$cmb->add_field(
[
'id' => 'knowledgegraph_type',
'type' => 'radio_inline',
'name' => esc_html__( 'Person or Company', 'rank-math' ),
'options' => [
'person' => esc_html__( 'Person', 'rank-math' ),
'company' => esc_html__( 'Organization', 'rank-math' ),
],
'desc' => esc_html__( 'Choose whether the site represents a person or an organization.', 'rank-math' ),
'default' => 'person',
]
);
$cmb->add_field(
[
'id' => 'website_name',
'type' => 'text',
'name' => esc_html__( 'Website Name', 'rank-math' ),
'desc' => esc_html__( 'Enter the name of your site to appear in search results.', 'rank-math' ),
'default' => get_bloginfo( 'name' ),
]
);
$cmb->add_field(
[
'id' => 'website_alternate_name',
'type' => 'text',
'name' => esc_html__( 'Website Alternate Name', 'rank-math' ),
'desc' => esc_html__( 'An alternate version of your site name (for example, an acronym or shorter name).', 'rank-math' ),
]
);
$cmb->add_field(
[
'id' => 'knowledgegraph_name',
'type' => 'text',
'name' => esc_html__( 'Person/Organization Name', 'rank-math' ),
'desc' => esc_html__( 'Your name or company name intended to feature in Google\'s Knowledge Panel.', 'rank-math' ),
'default' => get_bloginfo( 'name' ),
]
);
$cmb->add_field(
[
'id' => 'organization_description',
'type' => 'textarea_small',
'name' => esc_html__( 'Description', 'rank-math' ),
'desc' => esc_html__( 'Provide a detailed description of your organization.', 'rank-math' ),
'dep' => $rank_math_company,
]
);
$cmb->add_field(
[
'id' => 'knowledgegraph_logo',
'type' => 'file',
'name' => esc_html__( 'Logo', 'rank-math' ),
'desc' => __( '<strong>Min Size: 112Χ112px</strong>.<br /> A squared image is preferred by the search engines.', 'rank-math' ),
'options' => [ 'url' => false ],
]
);
$cmb->add_field(
[
'id' => 'url',
'type' => 'text_url',
'name' => esc_html__( 'URL', 'rank-math' ),
'desc' => esc_html__( 'URL of your website or your companys website.', 'rank-math' ),
'default' => home_url(),
]
);
$cmb->add_field(
[
'id' => 'email',
'type' => 'text',
'name' => esc_html__( 'Email', 'rank-math' ),
'desc' => esc_html__( 'Enter the contact email address that could be displayed on search engines.', 'rank-math' ),
]
);
$cmb->add_field(
[
'id' => 'phone',
'type' => 'text',
'name' => esc_html__( 'Phone', 'rank-math' ),
'desc' => esc_html__( 'Search engines may prominently display your contact phone number for mobile users.', 'rank-math' ),
'dep' => $rank_math_person,
]
);
$cmb->add_field(
[
'id' => 'local_address',
'type' => 'address',
'name' => esc_html__( 'Address', 'rank-math' ),
]
);
$cmb->add_field(
[
'id' => 'local_address_format',
'type' => 'textarea_small',
'name' => esc_html__( 'Address Format', 'rank-math' ),
'desc' => wp_kses_post( __( 'Format used when the address is displayed using the <code>[rank_math_contact_info]</code> shortcode.<br><strong>Available Tags: {address}, {locality}, {region}, {postalcode}, {country}, {gps}</strong>', 'rank-math' ) ),
'default' => '{address} {locality}, {region} {postalcode}',
'classes' => 'rank-math-address-format',
'attributes' => [
'rows' => 2,
'placeholder' => '{address} {locality}, {region} {country}. {postalcode}.',
],
'dep' => $rank_math_company,
]
);
$cmb->add_field(
[
'id' => 'local_business_type',
'type' => 'select',
'name' => esc_html__( 'Business Type', 'rank-math' ),
'options' => Helper::choices_business_types( true ),
'attributes' => ( 'data-s2' ),
'dep' => $rank_math_company,
]
);
$cmb->add_field(
[
'id' => 'opening_hours_format',
'type' => 'switch',
'name' => esc_html__( 'Opening Hours Format', 'rank-math' ),
'options' => [
'off' => '24:00',
'on' => '12:00',
],
'desc' => esc_html__( 'Time format used in the contact shortcode.', 'rank-math' ),
'default' => 'off',
'dep' => $rank_math_company,
]
);
$rank_math_opening_hours = $cmb->add_field(
[
'id' => 'opening_hours',
'type' => 'group',
'name' => esc_html__( 'Opening Hours', 'rank-math' ),
'desc' => esc_html__( 'Select opening hours. You can add multiple sets if you have different opening or closing hours on some days or if you have a mid-day break. Times are specified using 24:00 time.', 'rank-math' ),
'options' => [
'add_button' => esc_html__( 'Add time', 'rank-math' ),
'remove_button' => esc_html__( 'Remove', 'rank-math' ),
],
'dep' => $rank_math_company,
'classes' => 'cmb-group-text-only',
]
);
$cmb->add_group_field(
$rank_math_opening_hours,
[
'id' => 'day',
'type' => 'select',
'options' => [
'Monday' => esc_html__( 'Monday', 'rank-math' ),
'Tuesday' => esc_html__( 'Tuesday', 'rank-math' ),
'Wednesday' => esc_html__( 'Wednesday', 'rank-math' ),
'Thursday' => esc_html__( 'Thursday', 'rank-math' ),
'Friday' => esc_html__( 'Friday', 'rank-math' ),
'Saturday' => esc_html__( 'Saturday', 'rank-math' ),
'Sunday' => esc_html__( 'Sunday', 'rank-math' ),
],
]
);
$cmb->add_group_field(
$rank_math_opening_hours,
[
'id' => 'time',
'type' => 'text',
'attributes' => [ 'placeholder' => esc_html__( 'e.g. 09:00-17:00', 'rank-math' ) ],
'time_format' => 'H:i',
]
);
$rank_math_phones = $cmb->add_field(
[
'id' => 'phone_numbers',
'type' => 'group',
'name' => esc_html__( 'Phone Number', 'rank-math' ),
'desc' => esc_html__( 'Search engines may prominently display your contact phone number for mobile users.', 'rank-math' ),
'options' => [
'add_button' => esc_html__( 'Add number', 'rank-math' ),
'remove_button' => esc_html__( 'Remove', 'rank-math' ),
],
'dep' => $rank_math_company,
'classes' => 'cmb-group-text-only',
]
);
$cmb->add_group_field(
$rank_math_phones,
[
'id' => 'type',
'type' => 'select',
'options' => Helper::choices_phone_types(),
'default' => 'customer_support',
]
);
$cmb->add_group_field(
$rank_math_phones,
[
'id' => 'number',
'type' => 'text',
'attributes' => [ 'placeholder' => esc_html__( 'Format: +1-401-555-1212', 'rank-math' ) ],
]
);
$cmb->add_field(
[
'id' => 'price_range',
'type' => 'text',
'name' => esc_html__( 'Price Range', 'rank-math' ),
'desc' => esc_html__( 'The price range of the business, for example $$$.', 'rank-math' ),
'dep' => $rank_math_company,
]
);
$rank_math_additional_info = $cmb->add_field(
[
'id' => 'additional_info',
'type' => 'group',
'name' => esc_html__( 'Additional Info', 'rank-math' ),
'desc' => esc_html__( 'Provide relevant details of your company to include in the Organization Schema.', 'rank-math' ),
'options' => [
'add_button' => esc_html__( 'Add', 'rank-math' ),
'remove_button' => esc_html__( 'Remove', 'rank-math' ),
],
'dep' => $rank_math_company,
'classes' => 'cmb-group-text-only',
]
);
$cmb->add_group_field(
$rank_math_additional_info,
[
'id' => 'type',
'type' => 'select',
'options' => Helper::choices_additional_organization_info(),
'default' => '',
]
);
$cmb->add_group_field(
$rank_math_additional_info,
[
'id' => 'value',
'type' => 'text',
]
);
$rank_math_about_page = Helper::get_settings( 'titles.local_seo_about_page' );
$rank_math_about_options = [ '' => __( 'Select Page', 'rank-math' ) ];
if ( $rank_math_about_page ) {
$rank_math_about_options[ $rank_math_about_page ] = get_the_title( $rank_math_about_page );
}
$cmb->add_field(
[
'id' => 'local_seo_about_page',
'type' => 'select',
'options' => $rank_math_about_options,
'name' => esc_html__( 'About Page', 'rank-math' ),
'desc' => esc_html__( 'Select a page on your site where you want to show the LocalBusiness meta data.', 'rank-math' ),
'attributes' => ( 'data-s2-pages' ),
]
);
$rank_math_contact_page = Helper::get_settings( 'titles.local_seo_contact_page' );
$rank_math_contact_options = [ '' => __( 'Select Page', 'rank-math' ) ];
if ( $rank_math_contact_page ) {
$rank_math_contact_options[ $rank_math_contact_page ] = get_the_title( $rank_math_contact_page );
}
$cmb->add_field(
[
'id' => 'local_seo_contact_page',
'type' => 'select',
'options' => $rank_math_contact_options,
'name' => esc_html__( 'Contact Page', 'rank-math' ),
'desc' => esc_html__( 'Select a page on your site where you want to show the LocalBusiness meta data.', 'rank-math' ),
'attributes' => ( 'data-s2-pages' ),
]
);
$cmb->add_field(
[
'id' => 'maps_api_key',
'type' => 'text',
'name' => esc_html__( 'Google Maps API Key', 'rank-math' ),
/* translators: %s expands to "Google Maps Embed API" https://developers.google.com/maps/documentation/embed/ */
'desc' => sprintf( esc_html__( 'An API Key is required to display embedded Google Maps on your site. Get it here: %s', 'rank-math' ), '<a href="https://developers.google.com/maps/documentation/javascript/get-api-key" target="_blank">' . __( 'Google Maps Embed API', 'rank-math' ) . '</a>' ),
'dep' => $rank_math_company,
'attributes' => [ 'type' => 'password' ],
]
);
$cmb->add_field(
[
'id' => 'geo',
'type' => 'text',
'name' => esc_html__( 'Geo Coordinates', 'rank-math' ),
'desc' => esc_html__( 'Latitude and longitude values separated by comma.', 'rank-math' ),
'dep' => $rank_math_company,
/* Translators: placeholder is a link to the Pro version */
'after' => '<strong style="margin-top:20px; display:block; text-align:right;">' . sprintf( __( 'Multiple Locations are available in the %s.', 'rank-math' ), '<a href="' . KB::get( 'pro', 'Multiple Location Notice' ) . '" target="_blank">PRO Version</a>' ) . '</strong>',
]
);