[ 'wiki' => [ 'type' => 'url', 'label' => __('Wikipedia Page', 'jvb'), 'description' => __('For the schema', 'jvb'), 'quickEdit' => true, ] ], 'links' => [ 'links' => [ 'type' => 'repeater', 'quickEdit' => true, 'row_label' => 'title', 'label' => __('Online Links', 'jvb'), 'description' => __('These are listed publicly on the website', 'jvb'), 'fields' => [ 'url' => [ 'type' => 'url', 'label' => __('URL', 'jvb'), ], 'title' => [ 'type' => 'text', 'label' => __('Label', 'jvb'), ], 'tracker' => [ 'type' => 'text', 'label' => __('Tracker', 'jvb'), 'description' => __('If you are set up to track link referrals, add what comes after the ? here.'), ], ], 'section' => 'contact' ] ], 'contact' => [ 'admin_contact' => [ 'type' => 'set', 'label' => 'Admin Contact', 'quickEdit' => true, 'options' => [ 'text' => 'Text', 'call' => 'Call', 'email' => 'Email', 'insta' => 'Instagram', ], 'section' => 'contact' ], 'public_contact' => [ 'type' => 'set', 'label' => 'Public Contact', 'quickEdit' => true, 'options' => [ 'text' => 'Text', 'call' => 'Call', 'email' => 'Email', 'insta' => 'Instagram', ], 'section' => 'contact' ] ], 'SEO' => array_merge( self::getFields('alternate_name', $section), self::getFields('specialties', $section), self::getFields('rate', $section), self::getFields('awards', $section), self::getFields('ratings', $section), self::getFields('reviews', $section), self::getFields('services', $section), self::getFields('languages', $section), self::getFields('credentials', $section), self::getFields('keywords', $section) ), 'SEOBusiness' => array_merge( self::getFields('alternate_name', $section), self::getFields('hours', $section), self::getFields('specialties', $section), self::getFields('rate', $section), self::getFields('awards', $section), self::getFields('ratings', $section), self::getFields('reviews', $section), self::getFields('services', $section), self::getFields('languages', $section), self::getFields('keywords', $section), self::getFields('outside_photo', $section), self::getFields('slogan', $section), self::getFields('payment', $section), self::getFields('amenities', $section), self::getFields('permanently_close', $section), ), 'outside_photo' => [ 'outside_photo' => [ 'type' => 'image', 'label' => __('Outside Photo', 'jvb'), 'limit' => 1, 'section' => 'seo' ] ], 'slogan' => [ 'slogan' => [ 'type' => 'text', 'label' => __('Tagline or Slogan', 'jvb'), 'section' => 'seo', 'quickEdit' => true, ] ], 'payment' => [ 'payment' => [ 'type' => 'set', 'label' => __('Payments Accepted', 'jvb'), 'options' => [ 'Cash' => 'Cash', 'Credit Card' => 'Credit Card', 'Debit' => 'Debit', 'Google Pay' => 'Google Pay', 'Apple Pay' => 'Apple Pay', 'PayPal' => 'PayPal', 'Interac' => 'Interac', 'AMEX' => 'AMEX', ], 'section' => 'seo', 'bulkEdit'=> true, ] ], 'amenities' => [ 'amenities' => [ 'type' => 'set', 'label' => __('Amenities', 'jvb'), 'options' => [ 'Wheelchair Accessible' => 'Wheelchair Accessible', 'Free Parking' => 'Free Parking', 'Private Rooms' => 'Private Rooms', 'Air Conditioning' => 'Air Conditioning', 'WiFi' => 'WiFi', 'Gender Neutral Restroom' => 'Gender Neutral Restroom', 'LGBTQ+ Friendly' => 'LGBTQ+ Friendly', 'Sterilization Room' => 'Sterilization Room', 'Refreshments Available' => 'Refreshments Available', 'Street Level Access' => 'Street Level Access', 'Single Use Needles' => 'Single Use Needles', 'Consultation Room' => 'Consultation Room', 'Aftercare Products Available' => 'Aftercare Products Available', 'Walk-Ins Welcome' => 'Walk-Ins Welcome', ], 'section' => 'seo', 'bulkEdit'=> true, ] ], 'credentials' => [ 'credentials' => [ 'type' => 'set', 'label' => __('Credentials', 'jvb'), 'options' => [ 'WHMIS 2015' => 'WHMIS 2015', 'Tattoo and Piercing Safety Standards' => 'Tattoo and Piercing Safety Standards', 'Bloodborne Pathogens and Infection Control' => 'Bloodborne Pathogens and Infection Control', 'First Aid Training' => 'First Aid Training', ], 'section' => 'seo', 'bulkEdit'=> true, ] ], 'permanently_close' => [ 'permanently_close' => [ 'type' => 'true_false', 'label' => __('Permanently Close', 'jvb'), 'description' => '*IMPORTANT* This signals to search engines that this business is no longer in business. Use only if your shop is closing!', 'section' => 'seo', 'bulkEdit'=> true, ], 'dissolution_date' => [ 'type' => 'date', 'label' => __('Dissolution Date', 'jvb'), 'section' => 'seo', 'bulkEdit'=> true, ] ], 'alternate_name' => [ 'alternate_name' => [ 'type' => 'repeater', 'label' => __('Alternate Name', 'jvb'), 'fields' => [ 'name' => [ 'type' => 'text', 'label' => __('Name', 'jvb'), ] ], 'section' => 'seo' ] ], 'hours' => [ 'hours' => [ 'type' => 'group', 'mode' => 'hidden', 'quickEdit' => 'true', 'label' => __('Hours', 'jvb'), 'new_row' => 'New hours', 'add_label' => 'Add hours', 'fields' => [ 'monday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Monday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Monday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'tuesday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Tuesday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Tuesday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'wednesday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Wednesday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Wednesday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'thursday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Thursday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Thursday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'friday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Friday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Friday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'saturday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Saturday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Saturday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], 'sunday' => [ 'type' => 'group', 'mode' => 'hidden', 'label' => __('Sunday', 'jvb'), 'fields' => [ 'open' => [ 'type' => 'true_false', 'label' => 'Sunday' ], 'time_opens' => [ 'type' => 'time', 'label' => __('Opens', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ], 'time_closes' => [ 'type' => 'time', 'label' => __('Closes', 'jvb'), 'condition' => [ 'field' => 'open', 'value' => '1', ] ] ] ], ], 'section' => 'seo' ], 'by_appointment' => [ 'type' => 'true_false', 'label' => __('By Appointment Only', 'jvb'), 'section' => 'seo' ], 'walkins' => [ 'type' => 'true_false', 'label' => __('Walk Ins Welcome', 'jvb'), 'section' => 'seo' ] ], 'specialties' => [ 'specialties' => [ 'type' => 'repeater', 'row_label' => 'specialty', 'label' => __('Specialties', 'jvb'), 'fields' => [ 'specialty' => [ 'type' => 'text', 'label' => __('Specialty', 'jvb'), ], 'description' => [ 'type' => 'textarea', 'quill' => false, 'label' => __('Description', 'jvb'), ], ], 'section' => 'seo' ] ], 'rate' => [ 'rate' => [ 'type' => 'number', 'label' => 'Hourly rate', 'section' => 'seo', 'quickEdit' => true, 'bulkEdit'=> true, ] ], 'awards' => [ 'awards' => [ 'type' => 'repeater', 'row_label' => 'name', 'label' => __('Awards', 'jvb'), 'fields' => [ 'name' => [ 'type' => 'text', 'label' => __('Award Name', 'jvb'), ], 'presenter' => [ 'type' => 'text', 'label' => __('Presenter', 'jvb'), ], 'year' => [ 'type' => 'number', 'label' => __('Year', 'jvb'), ], ], 'section' => 'seo' ] ], 'ratings' => [ 'average_rating' => [ 'type' => 'select', 'label' => __('Average Rating', 'jvb'), 'options' => [ 'none' => 'Not Given', '0.5' => '0.5', '1' => '1', '1.5' => '1.5', '2' => '2', '2.5' => '2.5', '3' => '3', '3.5' => '3.5', '4' => '4', '4.5' => '4.5', '5' => '5', ], 'default' => 'none', 'section' => 'seo' ], 'total_ratings' => [ 'type' => 'number', 'label' => __('Total Ratings', 'jvb'), 'section' => 'seo' ] ], 'reviews' => [ 'reviews' => [ 'type' => 'repeater', 'row_label' => 'name', 'label' => __('Reviews', 'jvb'), 'fields' => [ 'name' => [ 'type' => 'text', 'label' => __('Reviewer Name', 'jvb'), ], 'review' => [ 'type' => 'textarea', 'quill' => false, 'label' => __('Review', 'jvb') ], 'rating' => [ 'type' => 'select', 'label' => __('Rating', 'jvb'), 'options' => [ 'none' => 'Not Given', '0.5' => '0.5', '1' => '1', '1.5' => '1.5', '2' => '2', '2.5' => '2.5', '3' => '3', '3.5' => '3.5', '4' => '4', '4.5' => '4.5', '5' => '5', ], 'default' => 'none' ], 'date' => [ 'type' => 'date', 'label' => __('Date of Review', 'jvb') ], 'url' => [ 'type' => 'url', 'label' => __('Link to Review (optional)', 'jvb'), ], ], 'section' => 'seo' ] ], 'services' => [ 'services' => [ 'type' => 'repeater', 'label' => __('Services', 'jvb'), 'fields' => [ 'name' => [ 'type' => 'text', 'label' => 'Service name', ], 'description' => [ 'type' => 'textarea', 'quill' => false, 'label' => 'Description', ] ], 'section' => 'seo' ] ], 'languages' => [ 'languages' => [ 'type' => 'repeater', 'label' => __('Language(s) Spoken', 'jvb'), 'fields' => [ 'language' => [ 'type' => 'text', 'label' => 'Language', ], ], 'default' => [ 'English' ], 'section' => 'seo', 'quickEdit' => true, ] ], 'keywords' => [ 'keywords' => [ 'type' => 'repeater', 'label' => __('Keywords', 'jvb'), 'fields' => [ 'keyword' => [ 'type' => 'text', 'label' => 'Keyword', ], ], 'default' => $labels ?? [ 'Edmonton tattoos', 'Edmonton tattoo artist', 'Edmonton tattooist' ], 'section' => 'seo', 'quickEdit' => true, ] ], default => [] }; } }