<?php
|
|
|
add_filter('atat_OrganizationSchemaDefault', 'atat_organization_schema');
|
function atat_organization_schema(array $schema): array
|
{
|
return array_merge($schema, [
|
'id' => '#legacy-tattoo-removal',
|
'type' => 'JVBase\managers\SEO\render\Thing\Organization\LocalBusiness\LocalBusiness',
|
'name' => 'Madi Mori',
|
'url' => get_home_url(),
|
'description' => 'Unscented, all natural soap made in Edmonton, Alberta.',
|
'slogan' => 'Making aftercare simple.',
|
'logo' => get_theme_mod('custom_logo'),
|
'foundingDate' => '2026-04-05',
|
|
'founder' => [
|
[
|
'id' => 'madi-rawson',
|
'type' => 'JVBase\managers\SEO\render\Thing\Person\Person',
|
'name' => 'Madi Rawson',
|
'url' => 'https://madimori.ca']
|
],
|
|
'sameAs' => [
|
'https://www.instagram.com/madebymadimori',
|
'https://www.facebook.com/madebymadimori',
|
],
|
|
// Contact
|
// 'telephone' => '+1-825-925-7398',
|
'email' => 'info@madimori.ca',
|
|
// Address
|
'address' => [
|
'addressLocality' => 'Edmonton',
|
'addressRegion' => 'AB',
|
'postalCode' => 'T6H 4R5',
|
'addressCountry' => 'CA',
|
],
|
|
// Geo - note the key names
|
'geo' => [
|
'latitude' => '53.5035125',
|
'longitude' => '-113.5188023',
|
],
|
|
// Business details
|
'priceRange' => '$$',
|
'paymentAccepted' => ['Cash', 'Credit Card', 'Debit Card', 'E-Transfer'],
|
'currenciesAccepted' => ['CAD'],
|
'areaServed' => [
|
[
|
'id' => '#edmonton',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Edmonton',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Edmonton'
|
],
|
[
|
'id' => '#stalbert',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'St. Albert',
|
'sameAs' => 'https://en.wikipedia.org/wiki/St._Albert,_Alberta'],
|
[
|
'id' => '#sherwoodpark',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Sherwood Park',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Sherwood_Park'],
|
[
|
'id' => '#leduc',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Leduc',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Leduc,_Alberta'],
|
[
|
'id' => '#sprucegrove',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Spruce Grove',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Spruce_Grove'],
|
[
|
'id' => '#calgary',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Calgary',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Calgary'],
|
[
|
'id' => '#reddeer',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Red Deer',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Red_Deer,_Alberta'],
|
[
|
'id' => '#strathconacounty',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Strathcona County',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Strathcona_County'],
|
[
|
'id' => '#grandprairie',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Grande Prairie',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Grande_Prairie'],
|
[
|
'id' => '#lloydminster',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Lloydminster',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Lloydminster'],
|
[
|
'id' => '#fortsaskatchewan',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Fort Saskatchewan',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Fort_Saskatchewan'],
|
[
|
'id' => '#camrose',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Camrose',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Camrose,_Alberta'],
|
[
|
'id' => '#stonyplain',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Stony Plain',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Stony_Plain,_Alberta'],
|
[
|
'id' => '#coldlake',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Cold Lake',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Cold_Lake,_Alberta'],
|
[
|
'id' => '#draytonvalley',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Drayton Valley',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Drayton_Valley'],
|
[
|
'id' => '#ponoka',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Ponoka',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Ponoka,_Alberta'],
|
[
|
'id' => '#vegreville',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Vegreville',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Vegreville'],
|
[
|
'id' => '#fortmcmurray',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Fort McMurray',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Fort_McMurray'],
|
[
|
'id' => '#lethbridge',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Lethbridge',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Lethbridge'],
|
[
|
'id' => '#airdrie',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Airdrie',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Airdrie,_Alberta'],
|
[
|
'id' => '#medicinehat',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Medicine Hat',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Medicine_Hat'],
|
[
|
'id' => '#cochrane',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Cochrane',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Cochrane,_Alberta'],
|
[
|
'id' => '#okotoks',
|
'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City',
|
'name' => 'Okotoks',
|
'sameAs' => 'https://en.wikipedia.org/wiki/Okotoks'],
|
],
|
|
// Hours - note the key names
|
'openingHoursSpecification' => [
|
[
|
'type' => 'JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\OpeningHoursSpecification',
|
'dayOfWeek' => ['Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
|
'opens' => '13:00',
|
'closes' => '18:00'
|
]
|
|
],
|
|
// Services as offer catalog
|
'hasOfferCatalog' => [
|
'name' => 'Our Services',
|
'items' => [
|
[
|
'type' => 'JVBase\managers\SEO\render\Thing\Intangible\AggregateOffer',
|
'id' => '#tatty-soap',
|
'price' => '12',
|
'priceCurrency' => 'CAD',
|
'itemOffered' => [
|
'id' => 'tatty-soap-item',
|
'type' => 'JVBase\managers\SEO\render\Thing\Product\Product',
|
'name' => 'Tatty Soap',
|
'description' => 'Handmade unscented soaps designed for tattoo aftercare',
|
]
|
],
|
]
|
],
|
|
// 'aggregateRating' => [
|
// 'ratingValue' => 5,
|
// 'reviewCount' => 109,
|
// 'bestRating' => 5,
|
// 'worstRating' => 1,
|
// ],
|
]);
|
}
|
|
add_filter('atat_WebsiteSchemaDefault', 'atat_website_schema');
|
function atat_website_schema(array $schema): array
|
{
|
return array_merge(
|
$schema,
|
[
|
'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\WebSite',
|
'name' => 'Madi Mori',
|
'description' => 'Handmade soaps in Edmonton, Alberta. Unscented, all natural ingredients.',
|
'inLanguage' => 'en-CA',
|
'potentialAction' => [
|
[
|
'id' => 'contact',
|
'type' => 'JVBase\inc\managers\SEO\render\Thing\Action\CommunicateAction',
|
'name' => 'Contact Us',
|
'target' => '/contact/',
|
'description' => 'Get in touch with Madi.',
|
],
|
],
|
],
|
);
|
}
|
|
|
|
|
|
//add_filter('jvb_schema', function($schema) {
|
// return array_merge($schema, [
|
// 'organization' => [
|
// 'type' => 'LocalBusiness',
|
// 'name' => 'Tatty Soap',
|
// 'url' => get_home_url(),
|
// 'description' => 'Unscented, all natural soap made in Edmonton, Alberta.',
|
// 'slogan' => 'Making aftercare simple.',
|
// 'logo' => get_theme_mod('custom_logo'),
|
// 'foundingDate' => '2026-02-15',
|
//
|
// 'founders' => [
|
// ['name' => 'Madi Rawson', 'url' => 'https://madebymadimori.ca'],
|
// ],
|
//
|
// 'sameAs' => [
|
// [ 'url' => 'https://madebymadimori.ca'],
|
// [ 'url' => 'https://www.instagram.com/tatty.soap'],
|
// [ 'url' => 'https://www.facebook.com/tatty.soap']
|
// ],
|
//
|
// // Contact
|
// 'telephone' => '+1-780-289-9915',
|
// 'email' => 'get@tattysoap.ca',
|
//
|
// // Address - note the key names
|
// 'address' => [
|
// 'street' => '6551 111 St NW',
|
// 'city' => 'Edmonton',
|
// 'province' => 'AB',
|
// 'postal_code' => 'T6H 4R5',
|
// 'country' => 'CA',
|
// ],
|
//
|
// // Geo - note the key names
|
// 'geo' => [
|
// 'lat' => '53.5035125', // was 'latitude'
|
// 'lng' => '-113.5188023', // was 'longitude'
|
// ],
|
//
|
// // Business details
|
// 'priceRange' => '$$',
|
// 'paymentAccepted' => ['Cash', 'Credit Card', 'Debit Card', 'E-Transfer'],
|
// 'currenciesAccepted' => ['CAD'],
|
// 'areaServed' => [
|
// ['name' => 'Edmonton'],
|
// ['name' => 'St. Albert'],
|
// ['name' => 'Sherwood Park'],
|
// ['name' => 'Leduc'],
|
// ['name' => 'Spruce Grove'],
|
// ['name' => 'Calgary'],
|
// ['name' => 'Red Deer'],
|
// ['name' => 'Strathcona County'],
|
// ['name' => 'Grande Prairie'],
|
// ['name' => 'Lloydminster'],
|
// ['name' => 'Fort Saskatchewan'],
|
// ['name' => 'Camrose'],
|
// ['name' => 'Stoney Plain'],
|
// ['name' => 'Cold Lake'],
|
// ['name' => 'Drayton Valley'],
|
// ['name' => 'Ponoka'],
|
// ['name' => 'Vegreville'],
|
// ['name' => 'Fort McMurry'],
|
// ['name' => 'Lethbridge'],
|
// ['name' => 'Airdrie'],
|
// ['name' => 'Medicine Hat'],
|
// ['name' => 'Cochrane'],
|
// ['name' => 'Okotoks'],
|
// ],
|
//
|
// // Hours - note the key names
|
// 'openingHours' => [
|
// 'monday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'tuesday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'wednesday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'thursday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'friday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'saturday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// 'sunday' => ['opens' => '9:00', 'closes' => '17:00'],
|
// ],
|
//
|
// // Services as offer catalog
|
// 'hasOfferCatalog' => [
|
// 'source' => 'manual',
|
// 'manual_items' => [
|
// [
|
// 'type' => 'Product',
|
// 'name' => 'Tatty Soap',
|
// 'description' => 'Handmade, unscented, all natural soap designed for tattoo and laser tattoo removal aftercare.',
|
// ],
|
// ]
|
// ],
|
//
|
// // Rating - note the structure
|
//// 'aggregateRating' => [
|
//// 'value' => 5,
|
//// 'count' => 103,
|
//// 'best' => 5,
|
//// 'worst' => 1,
|
//// ],
|
// ],
|
//
|
// // Website settings (optional overrides)
|
// 'website' => [
|
// 'name' => 'Tatty Soap',
|
// 'description' => 'Making aftercare simple.',
|
// 'inLanguage' => 'en-CA',
|
// 'potentialAction' => [
|
// [
|
// 'name' => 'Search',
|
// 'type' => 'searchAction',
|
// 'target' => '/?s={query}',
|
// ],
|
// [
|
// 'type' => 'communicateAction',
|
// 'name' => 'Contact Us',
|
// 'target' => '/contact/',
|
// 'description' => 'Get in touch with Madi.',
|
// ],
|
// ],
|
// ],
|
// ]);
|
//});
|