Schema & Structured Data for WP & AMP - Version 1.9.67

Version Description

(09 March 2021) =

  • Fixed: Fatal error occuring, when trying to activate elemtor plugin along with the saswp plugin(While using PHP 8 versioin) #1336
  • Fixed: Value for the Image Field is required in service schema #1337
  • Added: WorksFor Property added to Person schema #1145
  • Added: Photograph and ImageGallery schema #790
  • Added: TaxiService Schema #1083
  • Added: BoatTrip schema #1135
Download this release

Release Info

Developer magazine3
Plugin Icon 128x128 Schema & Structured Data for WP & AMP
Version 1.9.67
Comparing to
See all releases

Code changes from version 1.9.66 to 1.9.67

core/array-list/repeater-fields.php CHANGED
@@ -78,7 +78,11 @@ return array( 'schema_type_element' => array(
78
  ),
79
  'Trip' => array(
80
  'trip-itinerary' => 'trip_itinerary'
81
- )
 
 
 
 
82
  ),
83
  'meta_name' => array(
84
  'movie_actor' => array(
@@ -455,38 +459,66 @@ return array( 'schema_type_element' => array(
455
  ),
456
  'trip_itinerary' => array(
457
  array(
458
- 'label' => 'Itinerary Type',
459
- 'name' => 'saswp_trip_itinerary_type',
460
- 'type' => 'select',
461
- 'options' => array(
462
- 'City' => 'City',
463
- 'LandmarksOrHistoricalBuildings' => 'LandmarksOrHistoricalBuildings',
464
- 'AdministrativeArea' => 'AdministrativeArea',
465
- 'LakeBodyOfWater' => 'LakeBodyOfWater'
466
- )
467
  ),
468
  array(
469
- 'label' => 'Itinerary Name',
470
- 'name' => 'saswp_trip_itinerary_name',
471
- 'type' => 'text'
472
  ),
473
  array(
474
- 'label' => 'Itinerary Description',
475
- 'name' => 'saswp_trip_itinerary_description',
476
- 'type' => 'textarea'
477
  ),
478
  array(
479
- 'label' => 'Itinerary URL',
480
- 'name' => 'saswp_trip_itinerary_url',
481
- 'type' => 'text'
482
- )
483
- ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
484
  'faq_question' => array(
485
  array(
486
- 'label' => 'Question',
487
- 'name' => 'saswp_faq_question_name',
488
- 'type' => 'text'
489
- ),
490
  array(
491
  'label' => 'Accepted Answer',
492
  'name' => 'saswp_faq_question_answer',
78
  ),
79
  'Trip' => array(
80
  'trip-itinerary' => 'trip_itinerary'
81
+ ),
82
+ 'BoatTrip' => array(
83
+ 'boat-trip-itinerary' => 'boat_trip_itinerary'
84
+ )
85
+
86
  ),
87
  'meta_name' => array(
88
  'movie_actor' => array(
459
  ),
460
  'trip_itinerary' => array(
461
  array(
462
+ 'label' => 'Itinerary Type',
463
+ 'name' => 'saswp_trip_itinerary_type',
464
+ 'type' => 'select',
465
+ 'options' => array(
466
+ 'City' => 'City',
467
+ 'LandmarksOrHistoricalBuildings' => 'LandmarksOrHistoricalBuildings',
468
+ 'AdministrativeArea' => 'AdministrativeArea',
469
+ 'LakeBodyOfWater' => 'LakeBodyOfWater'
470
+ )
471
  ),
472
  array(
473
+ 'label' => 'Itinerary Name',
474
+ 'name' => 'saswp_trip_itinerary_name',
475
+ 'type' => 'text'
476
  ),
477
  array(
478
+ 'label' => 'Itinerary Description',
479
+ 'name' => 'saswp_trip_itinerary_description',
480
+ 'type' => 'textarea'
481
  ),
482
  array(
483
+ 'label' => 'Itinerary URL',
484
+ 'name' => 'saswp_trip_itinerary_url',
485
+ 'type' => 'text'
486
+ )
487
+ ),
488
+ 'boat_trip_itinerary' => array(
489
+ array(
490
+ 'label' => 'Itinerary Type',
491
+ 'name' => 'saswp_boat_trip_itinerary_type',
492
+ 'type' => 'select',
493
+ 'options' => array(
494
+ 'City' => 'City',
495
+ 'LandmarksOrHistoricalBuildings' => 'LandmarksOrHistoricalBuildings',
496
+ 'AdministrativeArea' => 'AdministrativeArea',
497
+ 'LakeBodyOfWater' => 'LakeBodyOfWater'
498
+ )
499
+ ),
500
+ array(
501
+ 'label' => 'Itinerary Name',
502
+ 'name' => 'saswp_boat_trip_itinerary_name',
503
+ 'type' => 'text'
504
+ ),
505
+ array(
506
+ 'label' => 'Itinerary Description',
507
+ 'name' => 'saswp_boat_trip_itinerary_description',
508
+ 'type' => 'textarea'
509
+ ),
510
+ array(
511
+ 'label' => 'Itinerary URL',
512
+ 'name' => 'saswp_boat_trip_itinerary_url',
513
+ 'type' => 'text'
514
+ )
515
+ ),
516
  'faq_question' => array(
517
  array(
518
+ 'label' => 'Question',
519
+ 'name' => 'saswp_faq_question_name',
520
+ 'type' => 'text'
521
+ ),
522
  array(
523
  'label' => 'Accepted Answer',
524
  'name' => 'saswp_faq_question_answer',
core/array-list/schema-properties.php CHANGED
@@ -713,6 +713,91 @@ function saswp_get_fields_by_schema_type( $schema_id = null, $condition = null,
713
  )
714
  );
715
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
716
 
717
  case 'Article':
718
  $meta_field = array(
@@ -2786,6 +2871,111 @@ function saswp_get_fields_by_schema_type( $schema_id = null, $condition = null,
2786
  )
2787
  );
2788
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2789
 
2790
  case 'Review':
2791
 
@@ -4735,6 +4925,42 @@ function saswp_get_fields_by_schema_type( $schema_id = null, $condition = null,
4735
 
4736
  break;
4737
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4738
  case 'FAQ':
4739
 
4740
  $meta_field = array(
@@ -4883,7 +5109,7 @@ function saswp_get_fields_by_schema_type( $schema_id = null, $condition = null,
4883
  'type' => 'text',
4884
  ),
4885
  array(
4886
- 'label' => 'Company',
4887
  'id' => 'saswp_person_schema_company_'.$schema_id,
4888
  'type' => 'text',
4889
  ),
713
  )
714
  );
715
  break;
716
+
717
+ case 'Photograph':
718
+ $meta_field = array(
719
+ array(
720
+ 'label' => 'Headline',
721
+ 'id' => 'saswp_photograph_headline_'.$schema_id,
722
+ 'type' => 'text',
723
+ 'default' => saswp_get_the_title()
724
+ ),
725
+ array(
726
+ 'label' => 'URL',
727
+ 'id' => 'saswp_photograph_url_'.$schema_id,
728
+ 'type' => 'text',
729
+ 'default' => get_permalink(),
730
+ ),
731
+ array(
732
+ 'label' => 'Image',
733
+ 'id' => 'saswp_photograph_image_'.$schema_id,
734
+ 'type' => 'media'
735
+ ),
736
+ array(
737
+ 'label' => 'inLanguage',
738
+ 'id' => 'saswp_photograph_inlanguage_'.$schema_id,
739
+ 'type' => 'text',
740
+ 'default' => get_bloginfo('language'),
741
+ ),
742
+ array(
743
+ 'label' => 'Description',
744
+ 'id' => 'saswp_photograph_description_'.$schema_id,
745
+ 'type' => 'textarea',
746
+ 'default' => saswp_strip_all_tags(get_the_excerpt())
747
+ ),
748
+ array(
749
+ 'label' => 'Date Published',
750
+ 'id' => 'saswp_photograph_date_published_'.$schema_id,
751
+ 'type' => 'text',
752
+ 'default' => get_the_date("Y-m-d")
753
+ ),
754
+ array(
755
+ 'label' => 'Date Modified',
756
+ 'id' => 'saswp_photograph_date_modified_'.$schema_id,
757
+ 'type' => 'text',
758
+ 'default' => get_the_modified_date("Y-m-d")
759
+ ),
760
+ array(
761
+ 'label' => 'Author Type',
762
+ 'id' => 'saswp_photograph_author_type_'.$schema_id,
763
+ 'type' => 'select',
764
+ 'options' => array(
765
+ 'Person' => 'Person',
766
+ 'Organization' => 'Organization',
767
+ )
768
+ ),
769
+ array(
770
+ 'label' => 'Author Name',
771
+ 'id' => 'saswp_photograph_author_name_'.$schema_id,
772
+ 'type' => 'text',
773
+ 'default' => is_object($current_user) ? $current_user->display_name : ''
774
+ ),
775
+ array(
776
+ 'label' => 'Author Description',
777
+ 'id' => 'saswp_photograph_author_description_'.$schema_id,
778
+ 'type' => 'textarea',
779
+ 'default' => $author_desc
780
+ ),
781
+ array(
782
+ 'label' => 'Author URL',
783
+ 'id' => 'saswp_photograph_author_url_'.$schema_id,
784
+ 'type' => 'text',
785
+ 'default' => $author_url
786
+ ),
787
+ array(
788
+ 'label' => 'Organization Name',
789
+ 'id' => 'saswp_photograph_organization_name_'.$schema_id,
790
+ 'type' => 'text',
791
+ 'default' => saswp_remove_warnings($sd_data, 'sd_name', 'saswp_string')
792
+ ),
793
+ array(
794
+ 'label' => 'Organization Logo',
795
+ 'id' => 'saswp_photograph_organization_logo_'.$schema_id,
796
+ 'type' => 'media',
797
+ 'default' => isset($sd_data['sd_logo']['url']) ? $sd_data['sd_logo']['url']:''
798
+ )
799
+ );
800
+ break;
801
 
802
  case 'Article':
803
  $meta_field = array(
2871
  )
2872
  );
2873
  break;
2874
+
2875
+ case 'TaxiService':
2876
+
2877
+ $meta_field = array(
2878
+ array(
2879
+ 'label' => 'Name',
2880
+ 'id' => 'saswp_taxi_service_schema_name_'.$schema_id,
2881
+ 'type' => 'text',
2882
+ ),
2883
+ array(
2884
+ 'label' => 'URL',
2885
+ 'id' => 'saswp_taxi_service_schema_url_'.$schema_id,
2886
+ 'type' => 'text',
2887
+ ),
2888
+ array(
2889
+ 'label' => 'Image',
2890
+ 'id' => 'saswp_taxi_service_schema_image_'.$schema_id,
2891
+ 'type' => 'media',
2892
+ ),
2893
+ array(
2894
+ 'label' => 'Service Type',
2895
+ 'id' => 'saswp_taxi_service_schema_type_'.$schema_id,
2896
+ 'type' => 'text',
2897
+ ),
2898
+ array(
2899
+ 'label' => 'Provider Name',
2900
+ 'id' => 'saswp_taxi_service_schema_provider_name_'.$schema_id,
2901
+ 'type' => 'text',
2902
+ ),
2903
+ array(
2904
+ 'label' => 'Provider Type',
2905
+ 'id' => 'saswp_taxi_service_schema_provider_type_'.$schema_id,
2906
+ 'type' => 'select',
2907
+ 'options' => array(
2908
+ 'Airline' => 'Airline',
2909
+ 'Corporation' => 'Corporation',
2910
+ 'EducationalOrganization' => 'Educational Organization',
2911
+ 'GovernmentOrganization' => 'Government Organization',
2912
+ 'LocalBusiness' => 'Local Business',
2913
+ 'MedicalOrganization' => 'Medical Organization',
2914
+ 'NGO' => 'NGO',
2915
+ 'PerformingGroup' => 'Performing Group',
2916
+ 'SportsOrganization' => 'Sports Organization',
2917
+ ),
2918
+ ),
2919
+ array(
2920
+ 'label' => 'Locality',
2921
+ 'id' => 'saswp_taxi_service_schema_locality_'.$schema_id,
2922
+ 'type' => 'text',
2923
+ ),
2924
+ array(
2925
+ 'label' => 'Postal Code',
2926
+ 'id' => 'saswp_taxi_service_schema_postal_code_'.$schema_id,
2927
+ 'type' => 'text',
2928
+ ),
2929
+ array(
2930
+ 'label' => 'Address Country',
2931
+ 'id' => 'saswp_taxi_service_schema_country_'.$schema_id,
2932
+ 'type' => 'text',
2933
+ ),
2934
+ array(
2935
+ 'label' => 'Telephone',
2936
+ 'id' => 'saswp_taxi_service_schema_telephone_'.$schema_id,
2937
+ 'type' => 'text',
2938
+ ),
2939
+ array(
2940
+ 'label' => 'Price Range',
2941
+ 'id' => 'saswp_taxi_service_schema_price_range_'.$schema_id,
2942
+ 'type' => 'text',
2943
+ ),
2944
+ array(
2945
+ 'label' => 'Description',
2946
+ 'id' => 'saswp_taxi_service_schema_description_'.$schema_id,
2947
+ 'type' => 'textarea',
2948
+ ),
2949
+ array(
2950
+ 'label' => 'Area Served (City)',
2951
+ 'id' => 'saswp_taxi_service_schema_area_served_'.$schema_id,
2952
+ 'type' => 'textarea',
2953
+ 'note' => 'Note: Enter all the City name in comma separated',
2954
+ 'attributes' => array(
2955
+ 'placeholder' => 'New York, Los Angeles'
2956
+ ),
2957
+ ),
2958
+ array(
2959
+ 'label' => 'Service Offer',
2960
+ 'id' => 'saswp_taxi_service_schema_service_offer_'.$schema_id,
2961
+ 'type' => 'textarea',
2962
+ 'note' => 'Note: Enter all the service offer in comma separated',
2963
+ 'attributes' => array(
2964
+ 'placeholder' => 'Apartment light cleaning, carpet cleaning'
2965
+ )
2966
+ ),
2967
+ array(
2968
+ 'label' => 'Additional Type',
2969
+ 'id' => 'saswp_taxi_service_schema_additional_type_'.$schema_id,
2970
+ 'type' => 'text',
2971
+ ),
2972
+ array(
2973
+ 'label' => 'Service Output',
2974
+ 'id' => 'saswp_taxi_service_schema_service_output_'.$schema_id,
2975
+ 'type' => 'text',
2976
+ )
2977
+ );
2978
+ break;
2979
 
2980
  case 'Review':
2981
 
4925
 
4926
  break;
4927
 
4928
+ case 'BoatTrip':
4929
+
4930
+ $meta_field = array(
4931
+ array(
4932
+ 'label' => 'Name',
4933
+ 'id' => 'saswp_boat_trip_schema_name_'.$schema_id,
4934
+ 'type' => 'text',
4935
+ 'attributes' => array(
4936
+ 'placeholder' => 'Name'
4937
+ ),
4938
+ ),
4939
+ array(
4940
+ 'label' => 'Description',
4941
+ 'id' => 'saswp_boat_trip_schema_description_'.$schema_id,
4942
+ 'type' => 'textarea',
4943
+ 'attributes' => array(
4944
+ 'placeholder' => 'Description'
4945
+ )
4946
+ ),
4947
+ array(
4948
+ 'label' => 'URL',
4949
+ 'id' => 'saswp_boat_trip_schema_url_'.$schema_id,
4950
+ 'type' => 'text',
4951
+ 'default' => get_permalink()
4952
+ ),
4953
+ array(
4954
+ 'label' => 'Image',
4955
+ 'id' => 'saswp_boat_trip_schema_image_'.$schema_id,
4956
+ 'type' => 'media'
4957
+ )
4958
+
4959
+
4960
+ );
4961
+
4962
+ break;
4963
+
4964
  case 'FAQ':
4965
 
4966
  $meta_field = array(
5109
  'type' => 'text',
5110
  ),
5111
  array(
5112
+ 'label' => 'Company ( Works For )',
5113
  'id' => 'saswp_person_schema_company_'.$schema_id,
5114
  'type' => 'text',
5115
  ),
core/array-list/schemas.php CHANGED
@@ -27,7 +27,8 @@ return array(
27
  'Movie' => 'Movie',
28
  'NewsArticle' => 'NewsArticle',
29
  'PodcastEpisode' => 'PodcastEpisode',
30
- 'PodcastSeason' => 'PodcastSeason',
 
31
  'qanda' => 'Q&A',
32
  'Review' => 'Review',
33
  'Recipe' => 'Recipe',
@@ -49,7 +50,9 @@ return array(
49
  'ItemList' => 'ItemList',
50
  'JobPosting' => 'JobPosting',
51
  'Service' => 'Service',
52
- 'Trip' => 'Trip',
 
 
53
  ),
54
  'Media' => array(
55
  'AudioObject' => 'AudioObject',
27
  'Movie' => 'Movie',
28
  'NewsArticle' => 'NewsArticle',
29
  'PodcastEpisode' => 'PodcastEpisode',
30
+ 'PodcastSeason' => 'PodcastSeason',
31
+ 'Photograph' => 'Photograph',
32
  'qanda' => 'Q&A',
33
  'Review' => 'Review',
34
  'Recipe' => 'Recipe',
50
  'ItemList' => 'ItemList',
51
  'JobPosting' => 'JobPosting',
52
  'Service' => 'Service',
53
+ 'TaxiService' => 'TaxiService',
54
+ 'Trip' => 'Trip',
55
+ 'BoatTrip' => 'BoatTrip',
56
  ),
57
  'Media' => array(
58
  'AudioObject' => 'AudioObject',
core/global.php CHANGED
@@ -47,13 +47,16 @@ $without_aggregate = array(
47
  'DiscussionForumPosting',
48
  'DataFeed',
49
  'FAQ',
 
50
  'NewsArticle',
51
  'qanda',
52
  'TechArticle',
53
  'WebPage',
54
  'JobPosting',
55
  'Service',
 
56
  'Trip',
 
57
  'MedicalCondition',
58
  'TouristAttraction',
59
  'TouristDestination',
47
  'DiscussionForumPosting',
48
  'DataFeed',
49
  'FAQ',
50
+ 'Photograph',
51
  'NewsArticle',
52
  'qanda',
53
  'TechArticle',
54
  'WebPage',
55
  'JobPosting',
56
  'Service',
57
+ 'TaxiService',
58
  'Trip',
59
+ 'BoatTrip',
60
  'MedicalCondition',
61
  'TouristAttraction',
62
  'TouristDestination',
output/compatibility.php CHANGED
@@ -354,7 +354,7 @@ class saswp_output_compatibility{
354
  public function rmprating_on_activation(){
355
  $this->saswp_update_option_on_compatibility_activation('saswp-rmprating');
356
  }
357
- public function elementor_ratings_on_activation(){
358
  $this->saswp_update_option_on_compatibility_activation('saswp-elementor');
359
  }
360
  public function ratingform_on_activation(){
354
  public function rmprating_on_activation(){
355
  $this->saswp_update_option_on_compatibility_activation('saswp-rmprating');
356
  }
357
+ public function elementor_on_activation(){
358
  $this->saswp_update_option_on_compatibility_activation('saswp-elementor');
359
  }
360
  public function ratingform_on_activation(){
output/markup.php CHANGED
@@ -1755,6 +1755,14 @@ function saswp_person_schema_markup($schema_id, $schema_post_id, $all_post_meta)
1755
  $input1['nationality'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_nationality_'.$schema_id, 'saswp_array');
1756
  $input1['jobTitle'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_job_title_'.$schema_id, 'saswp_array');
1757
 
 
 
 
 
 
 
 
 
1758
  $input1['address']['@type'] = 'PostalAddress';
1759
  $input1['address']['streetAddress'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_street_address_'.$schema_id, 'saswp_array');
1760
  $input1['address']['addressCountry'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_country_'.$schema_id, 'saswp_array');
@@ -1817,17 +1825,17 @@ function saswp_person_schema_markup($schema_id, $schema_post_id, $all_post_meta)
1817
  $input1['sameAs'] = $sameas;
1818
  }
1819
 
1820
- if(isset($all_post_meta['saswp_person_schema_occupation_name_'.$schema_id][0])){
1821
  $input1['hasOccupation']['name'] = $all_post_meta['saswp_person_schema_occupation_name_'.$schema_id][0];
1822
  }
1823
- if(isset($all_post_meta['saswp_person_schema_occupation_description_'.$schema_id][0])){
1824
  $input1['hasOccupation']['description'] = $all_post_meta['saswp_person_schema_occupation_description_'.$schema_id][0];
1825
  }
1826
- if(isset($all_post_meta['saswp_person_schema_occupation_city_'.$schema_id][0])){
1827
  $input1['hasOccupation']['occupationLocation']['@type'] = 'City';
1828
  $input1['hasOccupation']['occupationLocation']['name'] = $all_post_meta['saswp_person_schema_occupation_city_'.$schema_id][0];
1829
  }
1830
- if(isset($all_post_meta['saswp_person_schema_estimated_salary_'.$schema_id][0])){
1831
  $input1['hasOccupation']['estimatedSalary']['@type'] = 'MonetaryAmountDistribution';
1832
  $input1['hasOccupation']['estimatedSalary']['name'] = 'base';
1833
  $input1['hasOccupation']['estimatedSalary']['currency'] = $all_post_meta['saswp_person_schema_salary_currency_'.$schema_id][0];
@@ -1839,7 +1847,7 @@ function saswp_person_schema_markup($schema_id, $schema_post_id, $all_post_meta)
1839
  $input1['hasOccupation']['estimatedSalary']['percentile75'] = $all_post_meta['saswp_person_schema_salary_percentile75_'.$schema_id][0];
1840
  $input1['hasOccupation']['estimatedSalary']['percentile90'] = $all_post_meta['saswp_person_schema_salary_percentile90_'.$schema_id][0];
1841
  }
1842
- if(isset($all_post_meta['saswp_person_schema_salary_last_reviewed_'.$schema_id][0])){
1843
  $input1['hasOccupation']['mainEntityOfPage']['@type'] = 'WebPage';
1844
  $input1['hasOccupation']['mainEntityOfPage']['lastReviewed'] = saswp_format_date_time($all_post_meta['saswp_person_schema_salary_last_reviewed_'.$schema_id][0]);
1845
  }
@@ -1893,6 +1901,51 @@ function saswp_trip_schema_markup($schema_id, $schema_post_id, $all_post_meta){
1893
  return $input1;
1894
  }
1895
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1896
 
1897
  function saswp_itemlist_schema_markup($schema_id, $schema_post_id, $all_post_meta){
1898
 
@@ -3621,6 +3674,51 @@ function saswp_special_announcement_schema_markup($schema_id, $schema_post_id, $
3621
 
3622
  }
3623
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3624
  function saswp_article_schema_markup($schema_id, $schema_post_id, $all_post_meta){
3625
 
3626
  $input1 = array();
@@ -4149,6 +4247,75 @@ function saswp_image_object_schema_markup($schema_id, $schema_post_id, $all_post
4149
 
4150
  }
4151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4152
  function saswp_service_schema_markup($schema_id, $schema_post_id, $all_post_meta){
4153
 
4154
  $input1 = array();
@@ -4185,6 +4352,10 @@ function saswp_service_schema_markup($schema_id, $schema_post_id, $all_post_meta
4185
  $input1['provider']['priceRange'] = $all_post_meta['saswp_service_schema_price_range_'.$schema_id][0];
4186
  }
4187
 
 
 
 
 
4188
  }
4189
 
4190
  if( isset($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) && !empty($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) ){
1755
  $input1['nationality'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_nationality_'.$schema_id, 'saswp_array');
1756
  $input1['jobTitle'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_job_title_'.$schema_id, 'saswp_array');
1757
 
1758
+ if(isset($all_post_meta['saswp_person_schema_company_'.$schema_id][0])){
1759
+ $input1['worksFor']['@type'] = 'Organization';
1760
+ $input1['worksFor']['name'] = $all_post_meta['saswp_person_schema_company_'.$schema_id][0];
1761
+ if(isset($all_post_meta['saswp_person_schema_website_'.$schema_id][0])){
1762
+ $input1['worksFor']['url'] = $all_post_meta['saswp_person_schema_website_'.$schema_id][0];
1763
+ }
1764
+ }
1765
+
1766
  $input1['address']['@type'] = 'PostalAddress';
1767
  $input1['address']['streetAddress'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_street_address_'.$schema_id, 'saswp_array');
1768
  $input1['address']['addressCountry'] = saswp_remove_warnings($all_post_meta, 'saswp_person_schema_country_'.$schema_id, 'saswp_array');
1825
  $input1['sameAs'] = $sameas;
1826
  }
1827
 
1828
+ if(isset($all_post_meta['saswp_person_schema_occupation_name_'.$schema_id][0]) && $all_post_meta['saswp_person_schema_occupation_name_'.$schema_id][0] != ''){
1829
  $input1['hasOccupation']['name'] = $all_post_meta['saswp_person_schema_occupation_name_'.$schema_id][0];
1830
  }
1831
+ if(isset($all_post_meta['saswp_person_schema_occupation_description_'.$schema_id][0]) && $all_post_meta['saswp_person_schema_occupation_description_'.$schema_id][0] != ''){
1832
  $input1['hasOccupation']['description'] = $all_post_meta['saswp_person_schema_occupation_description_'.$schema_id][0];
1833
  }
1834
+ if(isset($all_post_meta['saswp_person_schema_occupation_city_'.$schema_id][0]) && $all_post_meta['saswp_person_schema_occupation_city_'.$schema_id][0] != ''){
1835
  $input1['hasOccupation']['occupationLocation']['@type'] = 'City';
1836
  $input1['hasOccupation']['occupationLocation']['name'] = $all_post_meta['saswp_person_schema_occupation_city_'.$schema_id][0];
1837
  }
1838
+ if(isset($all_post_meta['saswp_person_schema_estimated_salary_'.$schema_id][0]) && $all_post_meta['saswp_person_schema_estimated_salary_'.$schema_id][0] != ''){
1839
  $input1['hasOccupation']['estimatedSalary']['@type'] = 'MonetaryAmountDistribution';
1840
  $input1['hasOccupation']['estimatedSalary']['name'] = 'base';
1841
  $input1['hasOccupation']['estimatedSalary']['currency'] = $all_post_meta['saswp_person_schema_salary_currency_'.$schema_id][0];
1847
  $input1['hasOccupation']['estimatedSalary']['percentile75'] = $all_post_meta['saswp_person_schema_salary_percentile75_'.$schema_id][0];
1848
  $input1['hasOccupation']['estimatedSalary']['percentile90'] = $all_post_meta['saswp_person_schema_salary_percentile90_'.$schema_id][0];
1849
  }
1850
+ if(isset( $all_post_meta['saswp_person_schema_salary_last_reviewed_'.$schema_id][0] ) && $all_post_meta['saswp_person_schema_salary_last_reviewed_'.$schema_id][0] != '' ){
1851
  $input1['hasOccupation']['mainEntityOfPage']['@type'] = 'WebPage';
1852
  $input1['hasOccupation']['mainEntityOfPage']['lastReviewed'] = saswp_format_date_time($all_post_meta['saswp_person_schema_salary_last_reviewed_'.$schema_id][0]);
1853
  }
1901
  return $input1;
1902
  }
1903
 
1904
+ function saswp_boat_trip_schema_markup($schema_id, $schema_post_id, $all_post_meta){
1905
+
1906
+ $input1 = array();
1907
+
1908
+ $howto_image = get_post_meta( get_the_ID(), 'saswp_boat_trip_schema_image_'.$schema_id.'_detail',true);
1909
+
1910
+ $input1['@context'] = saswp_context_url();
1911
+ $input1['@type'] = 'BoatTrip';
1912
+ $input1['@id'] = trailingslashit(get_permalink()).'#BoatTrip';
1913
+ $input1['url'] = saswp_remove_warnings($all_post_meta, 'saswp_boat_trip_schema_url_'.$schema_id, 'saswp_array');
1914
+ $input1['name'] = saswp_remove_warnings($all_post_meta, 'saswp_boat_trip_schema_name_'.$schema_id, 'saswp_array');
1915
+ $input1['description'] = saswp_remove_warnings($all_post_meta, 'saswp_boat_trip_schema_description_'.$schema_id, 'saswp_array');
1916
+
1917
+ if(!(empty($howto_image))){
1918
+
1919
+ $input1['image']['@type'] = 'ImageObject';
1920
+ $input1['image']['url'] = isset($howto_image['thumbnail']) ? esc_url($howto_image['thumbnail']):'';
1921
+ $input1['image']['height'] = isset($howto_image['width']) ? esc_attr($howto_image['width']) :'';
1922
+ $input1['image']['width'] = isset($howto_image['height']) ? esc_attr($howto_image['height']) :'';
1923
+
1924
+ }
1925
+
1926
+ $itinerary = get_post_meta($schema_post_id, 'boat_trip_itinerary_'.$schema_id, true);
1927
+
1928
+ $itinerary_arr = array();
1929
+
1930
+ if(!empty($itinerary)){
1931
+
1932
+ foreach($itinerary as $val){
1933
+
1934
+ $supply_data = array();
1935
+ $supply_data['@type'] = $val['saswp_boat_trip_itinerary_type'];
1936
+ $supply_data['name'] = $val['saswp_boat_trip_itinerary_name'];
1937
+ $supply_data['description'] = $val['saswp_boat_trip_itinerary_description'];
1938
+ $supply_data['url'] = $val['saswp_boat_trip_itinerary_url'];
1939
+
1940
+
1941
+ $itinerary_arr[] = $supply_data;
1942
+ }
1943
+ $input1['itinerary'] = $itinerary_arr;
1944
+ }
1945
+
1946
+ return $input1;
1947
+ }
1948
+
1949
 
1950
  function saswp_itemlist_schema_markup($schema_id, $schema_post_id, $all_post_meta){
1951
 
3674
 
3675
  }
3676
 
3677
+ function saswp_photograph_schema_markup($schema_id, $schema_post_id, $all_post_meta){
3678
+
3679
+ $input1 = array();
3680
+
3681
+ $slogo = get_post_meta( get_the_ID(), 'saswp_photograph_organization_logo_'.$schema_id.'_detail',true);
3682
+
3683
+ $input1 = array(
3684
+ '@context' => saswp_context_url(),
3685
+ '@type' => 'Photograph',
3686
+ '@id' => trailingslashit(get_permalink()).'#Photograph',
3687
+ 'url' => saswp_remove_warnings($all_post_meta, 'saswp_photograph_url_'.$schema_id, 'saswp_array'),
3688
+ 'inLanguage' => saswp_remove_warnings($all_post_meta, 'saswp_photograph_inlanguage_'.$schema_id, 'saswp_array'),
3689
+ 'image' => saswp_remove_warnings($all_post_meta, 'saswp_photograph_image_'.$schema_id, 'saswp_array'),
3690
+ 'headline' => saswp_remove_warnings($all_post_meta, 'saswp_photograph_headline_'.$schema_id, 'saswp_array'),
3691
+ 'description' => saswp_remove_warnings($all_post_meta, 'saswp_photograph_description_'.$schema_id, 'saswp_array'),
3692
+ 'datePublished' => isset($all_post_meta['saswp_photograph_date_published_'.$schema_id][0])? saswp_format_date_time($all_post_meta['saswp_photograph_date_published_'.$schema_id][0], get_post_time('h:i:s')):'',
3693
+ 'dateModified' => isset($all_post_meta['saswp_photograph_date_modified_'.$schema_id][0])? saswp_format_date_time($all_post_meta['saswp_photograph_date_modified_'.$schema_id][0], get_the_modified_time('h:i:s')):'',
3694
+
3695
+ );
3696
+
3697
+ $input1['author']['@type'] = 'Person';
3698
+
3699
+ if(isset( $all_post_meta['saswp_photograph_author_type_'.$schema_id][0] )){
3700
+ $input1['author']['@type'] = $all_post_meta['saswp_photograph_author_type_'.$schema_id][0];
3701
+ }
3702
+
3703
+ $input1['author']['name'] = saswp_remove_warnings($all_post_meta, 'saswp_photograph_author_name_'.$schema_id, 'saswp_array');
3704
+ $input1['author']['description'] = saswp_remove_warnings($all_post_meta, 'saswp_photograph_author_description_'.$schema_id, 'saswp_array');
3705
+ $input1['author']['url'] = saswp_remove_warnings($all_post_meta, 'saswp_photograph_author_url_'.$schema_id, 'saswp_array');
3706
+
3707
+ if(isset($all_post_meta['saswp_photograph_organization_logo_'.$schema_id][0]) || isset($all_post_meta['saswp_photograph_organization_name_'.$schema_id][0])){
3708
+
3709
+ $input1['publisher']['@type'] = 'Organization';
3710
+ $input1['publisher']['logo']['@type'] = 'ImageObject';
3711
+ $input1['publisher']['logo']['url'] = saswp_remove_warnings($all_post_meta, 'saswp_photograph_organization_logo_'.$schema_id, 'saswp_array');
3712
+ $input1['publisher']['logo']['width'] = saswp_remove_warnings($slogo, 'width', 'saswp_string');
3713
+ $input1['publisher']['logo']['height'] = saswp_remove_warnings($slogo, 'height', 'saswp_string');
3714
+ $input1['publisher']['name'] = saswp_remove_warnings($all_post_meta, 'saswp_photograph_organization_name_'.$schema_id, 'saswp_array');
3715
+
3716
+ }
3717
+
3718
+ return $input1;
3719
+
3720
+ }
3721
+
3722
  function saswp_article_schema_markup($schema_id, $schema_post_id, $all_post_meta){
3723
 
3724
  $input1 = array();
4247
 
4248
  }
4249
 
4250
+ function saswp_taxi_service_schema_markup($schema_id, $schema_post_id, $all_post_meta){
4251
+
4252
+ $input1 = array();
4253
+
4254
+ $area_served_str = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_area_served_'.$schema_id, 'saswp_array');
4255
+ $area_served_arr = explode(',', $area_served_str);
4256
+
4257
+ $service_offer_str = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_service_offer_'.$schema_id, 'saswp_array');
4258
+ $service_offer_arr = explode(',', $service_offer_str);
4259
+
4260
+ $input1['@context'] = saswp_context_url();
4261
+ $input1['@type'] = 'TaxiService';
4262
+ $input1['@id'] = trailingslashit(get_permalink()).'#TaxiService';
4263
+ $input1['name'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_name_'.$schema_id, 'saswp_array');
4264
+ $input1['serviceType'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_type_'.$schema_id, 'saswp_array');
4265
+
4266
+ if(isset($all_post_meta['saswp_taxi_service_schema_additional_type_'.$schema_id][0])){
4267
+ $input1['additionalType'] = $all_post_meta['saswp_taxi_service_schema_additional_type_'.$schema_id][0];
4268
+ }
4269
+ if(isset($all_post_meta['saswp_taxi_service_schema_service_output_'.$schema_id][0])){
4270
+ $input1['serviceOutput'] = $all_post_meta['saswp_taxi_service_schema_service_output_'.$schema_id][0];
4271
+ }
4272
+
4273
+ if(isset($all_post_meta['saswp_taxi_service_schema_provider_type_'.$schema_id][0])){
4274
+
4275
+ $input1['provider']['@type'] = $all_post_meta['saswp_taxi_service_schema_provider_type_'.$schema_id][0];
4276
+ $input1['provider']['name'] = $all_post_meta['saswp_taxi_service_schema_provider_name_'.$schema_id][0];
4277
+ $input1['provider']['address']['@type'] = 'PostalAddress';
4278
+ $input1['provider']['address']['addressLocality'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_locality_'.$schema_id, 'saswp_array');
4279
+ $input1['provider']['address']['postalCode'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_postal_code_'.$schema_id, 'saswp_array');
4280
+ $input1['provider']['address']['telephone'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_telephone_'.$schema_id, 'saswp_array');
4281
+
4282
+ if(isset($all_post_meta['saswp_taxi_service_schema_price_range_'.$schema_id][0])){
4283
+ $input1['provider']['priceRange'] = $all_post_meta['saswp_taxi_service_schema_price_range_'.$schema_id][0];
4284
+ }
4285
+
4286
+ }
4287
+
4288
+ if( isset($all_post_meta['saswp_taxi_service_schema_image_'.$schema_id][0]) && !empty($all_post_meta['saswp_taxi_service_schema_image_'.$schema_id][0]) ){
4289
+ $input1['image'] = $all_post_meta['saswp_taxi_service_schema_image_'.$schema_id][0];
4290
+ }
4291
+
4292
+ $input1['description'] = saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_description_'.$schema_id, 'saswp_array');
4293
+
4294
+ $areaServed = array();
4295
+ foreach($area_served_arr as $area){
4296
+ $areaServed[] = array(
4297
+ '@type' => 'City',
4298
+ 'name' => $area
4299
+ );
4300
+ }
4301
+ $serviceOffer = array();
4302
+ foreach($service_offer_arr as $offer){
4303
+ $serviceOffer[] = array(
4304
+ '@type' => 'Offer',
4305
+ 'name' => $offer
4306
+ );
4307
+ }
4308
+ $input1['areaServed'] = $areaServed;
4309
+ $input1['hasOfferCatalog'] = array(
4310
+ '@type' => 'OfferCatalog',
4311
+ 'name' => saswp_remove_warnings($all_post_meta, 'saswp_taxi_service_schema_name_'.$schema_id, 'saswp_array'),
4312
+ 'itemListElement' => $serviceOffer
4313
+ );
4314
+
4315
+ return $input1;
4316
+
4317
+ }
4318
+
4319
  function saswp_service_schema_markup($schema_id, $schema_post_id, $all_post_meta){
4320
 
4321
  $input1 = array();
4352
  $input1['provider']['priceRange'] = $all_post_meta['saswp_service_schema_price_range_'.$schema_id][0];
4353
  }
4354
 
4355
+ if( isset($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) && !empty($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) ){
4356
+ $input1['provider']['image'] = $all_post_meta['saswp_service_schema_image_'.$schema_id][0];
4357
+ }
4358
+
4359
  }
4360
 
4361
  if( isset($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) && !empty($all_post_meta['saswp_service_schema_image_'.$schema_id][0]) ){
output/output.php CHANGED
@@ -346,6 +346,23 @@ function saswp_schema_output() {
346
  }
347
 
348
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
 
350
  case 'SingleFamilyResidence':
351
 
@@ -1309,6 +1326,21 @@ function saswp_schema_output() {
1309
  }
1310
 
1311
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1312
 
1313
  case 'TechArticle':
1314
 
@@ -1582,7 +1614,7 @@ function saswp_schema_output() {
1582
 
1583
  case 'Service':
1584
 
1585
- $input1['@context'] = saswp_context_url();
1586
  $input1['@type'] = $schema_type;
1587
  $input1['@id'] = trailingslashit(saswp_get_permalink()).'#service';
1588
 
@@ -1596,6 +1628,23 @@ function saswp_schema_output() {
1596
  }
1597
 
1598
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1599
 
1600
  case 'Review':
1601
 
346
  }
347
 
348
  break;
349
+
350
+ case 'BoatTrip':
351
+
352
+ $input1['@context'] = saswp_context_url();
353
+ $input1['@type'] = 'BoatTrip';
354
+ $input1['@id'] = trailingslashit(saswp_get_permalink()).'#BoatTrip';
355
+
356
+ $input1 = apply_filters('saswp_modify_boat_trip_schema_output', $input1 );
357
+
358
+ $input1 = saswp_get_modified_markup($input1, $schema_type, $schema_post_id, $schema_options);
359
+
360
+ if($modified_schema == 1){
361
+
362
+ $input1 = saswp_boat_trip_schema_markup($schema_post_id, get_the_ID(), $all_post_meta);
363
+ }
364
+
365
+ break;
366
 
367
  case 'SingleFamilyResidence':
368
 
1326
  }
1327
 
1328
  break;
1329
+
1330
+ case 'Photograph':
1331
+
1332
+ $input1 = $service_object->saswp_schema_markup_generator($schema_type);
1333
+
1334
+ $input1 = apply_filters('saswp_modify_photograph_schema_output', $input1 );
1335
+
1336
+ $input1 = saswp_get_modified_markup($input1, $schema_type, $schema_post_id, $schema_options);
1337
+
1338
+ if($modified_schema == 1){
1339
+
1340
+ $input1 = saswp_photograph_schema_markup($schema_post_id, get_the_ID(), $all_post_meta);
1341
+ }
1342
+
1343
+ break;
1344
 
1345
  case 'TechArticle':
1346
 
1614
 
1615
  case 'Service':
1616
 
1617
+ $input1['@context'] = saswp_context_url();
1618
  $input1['@type'] = $schema_type;
1619
  $input1['@id'] = trailingslashit(saswp_get_permalink()).'#service';
1620
 
1628
  }
1629
 
1630
  break;
1631
+
1632
+ case 'TaxiService':
1633
+
1634
+ $input1['@context'] = saswp_context_url();
1635
+ $input1['@type'] = $schema_type;
1636
+ $input1['@id'] = trailingslashit(saswp_get_permalink()).'#TaxiService';
1637
+
1638
+ $input1 = apply_filters('saswp_modify_taxi_service_schema_output', $input1 );
1639
+
1640
+ $input1 = saswp_get_modified_markup($input1, $schema_type, $schema_post_id, $schema_options);
1641
+
1642
+ if($modified_schema == 1){
1643
+
1644
+ $input1 = saswp_taxi_service_schema_markup($schema_post_id, get_the_ID(), $all_post_meta);
1645
+ }
1646
+
1647
+ break;
1648
 
1649
  case 'Review':
1650
 
output/service.php CHANGED
@@ -1083,60 +1083,103 @@ Class saswp_output_service{
1083
  }
1084
 
1085
  break;
1086
-
1087
- case 'Article':
1088
 
1089
- if(isset($custom_fields['saswp_article_main_entity_of_page'])){
1090
- $input1['mainEntityOfPage'] = $custom_fields['saswp_article_main_entity_of_page'];
1091
- }
1092
- if(isset($custom_fields['saswp_article_image'])){
1093
- $input1['image'] = $custom_fields['saswp_article_image'];
1094
- }
1095
- if(isset($custom_fields['saswp_article_url'])){
1096
- $input1['url'] = saswp_validate_url($custom_fields['saswp_article_url']);
1097
- }
1098
- if(isset($custom_fields['saswp_article_body'])){
1099
- $input1['articleBody'] = $custom_fields['saswp_article_body'];
1100
- }
1101
- if(isset($custom_fields['saswp_article_keywords'])){
1102
- $input1['keywords'] = $custom_fields['saswp_article_keywords'];
1103
- }
1104
- if(isset($custom_fields['saswp_article_section'])){
1105
- $input1['articleSection'] = $custom_fields['saswp_article_section'];
1106
- }
1107
- if(isset($custom_fields['saswp_article_inlanguage'])){
1108
- $input1['inLanguage'] = $custom_fields['saswp_article_inlanguage'];
1109
- }
1110
- if(isset($custom_fields['saswp_article_headline'])){
1111
- $input1['headline'] = $custom_fields['saswp_article_headline'];
1112
- }
1113
- if(isset($custom_fields['saswp_article_description'])){
1114
- $input1['description'] = wp_strip_all_tags(strip_shortcodes( $custom_fields['saswp_article_description'] ));
1115
- }
1116
- if(isset($custom_fields['saswp_article_date_published'])){
1117
- $input1['datePublished'] = $custom_fields['saswp_article_date_published'];
1118
- }
1119
- if(isset($custom_fields['saswp_article_date_modified'])){
1120
- $input1['dateModified'] = $custom_fields['saswp_article_date_modified'];
1121
- }
1122
- if(isset($custom_fields['saswp_article_author_type'])){
1123
- $input1['author']['@type'] = $custom_fields['saswp_article_author_type'];
1124
- }
1125
- if(isset($custom_fields['saswp_article_author_name'])){
1126
- $input1['author']['name'] = $custom_fields['saswp_article_author_name'];
1127
- }
1128
- if(isset($custom_fields['saswp_article_author_description'])){
1129
- $input1['author']['description'] = $custom_fields['saswp_article_author_description'];
1130
- }
1131
- if(isset($custom_fields['saswp_article_author_url'])){
1132
- $input1['author']['url'] = $custom_fields['saswp_article_author_url'];
1133
- }
1134
- if(isset($custom_fields['saswp_article_organization_logo']) && isset($custom_fields['saswp_article_organization_name'])){
1135
- $input1['publisher']['@type'] = 'Organization';
1136
- $input1['publisher']['name'] = $custom_fields['saswp_article_organization_name'];
1137
- $input1['publisher']['logo'] = $custom_fields['saswp_article_organization_logo'];
1138
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1139
  break;
 
1140
  case 'SpecialAnnouncement':
1141
 
1142
  $location = array();
@@ -2539,6 +2582,55 @@ Class saswp_output_service{
2539
  }
2540
 
2541
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2542
 
2543
  case 'VideoObject':
2544
 
@@ -3106,6 +3198,16 @@ Class saswp_output_service{
3106
  if(isset($custom_fields['saswp_person_schema_job_title'])){
3107
  $input1['jobTitle'] = $custom_fields['saswp_person_schema_job_title'];
3108
  }
 
 
 
 
 
 
 
 
 
 
3109
  if(isset($custom_fields['saswp_person_schema_award'])){
3110
  $input1['award'] = $custom_fields['saswp_person_schema_award'];
3111
  }
@@ -3477,6 +3579,23 @@ Class saswp_output_service{
3477
  }
3478
 
3479
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3480
 
3481
  case 'MedicalCondition':
3482
 
@@ -4348,6 +4467,47 @@ Class saswp_output_service{
4348
  );
4349
 
4350
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4351
  case 'SpecialAnnouncement':
4352
  $input1 = array(
4353
  '@context' => saswp_context_url(),
1083
  }
1084
 
1085
  break;
1086
+ case 'Article':
 
1087
 
1088
+ if(isset($custom_fields['saswp_article_main_entity_of_page'])){
1089
+ $input1['mainEntityOfPage'] = $custom_fields['saswp_article_main_entity_of_page'];
1090
+ }
1091
+ if(isset($custom_fields['saswp_article_image'])){
1092
+ $input1['image'] = $custom_fields['saswp_article_image'];
1093
+ }
1094
+ if(isset($custom_fields['saswp_article_url'])){
1095
+ $input1['url'] = saswp_validate_url($custom_fields['saswp_article_url']);
1096
+ }
1097
+ if(isset($custom_fields['saswp_article_body'])){
1098
+ $input1['articleBody'] = $custom_fields['saswp_article_body'];
1099
+ }
1100
+ if(isset($custom_fields['saswp_article_keywords'])){
1101
+ $input1['keywords'] = $custom_fields['saswp_article_keywords'];
1102
+ }
1103
+ if(isset($custom_fields['saswp_article_section'])){
1104
+ $input1['articleSection'] = $custom_fields['saswp_article_section'];
1105
+ }
1106
+ if(isset($custom_fields['saswp_article_inlanguage'])){
1107
+ $input1['inLanguage'] = $custom_fields['saswp_article_inlanguage'];
1108
+ }
1109
+ if(isset($custom_fields['saswp_article_headline'])){
1110
+ $input1['headline'] = $custom_fields['saswp_article_headline'];
1111
+ }
1112
+ if(isset($custom_fields['saswp_article_description'])){
1113
+ $input1['description'] = wp_strip_all_tags(strip_shortcodes( $custom_fields['saswp_article_description'] ));
1114
+ }
1115
+ if(isset($custom_fields['saswp_article_date_published'])){
1116
+ $input1['datePublished'] = $custom_fields['saswp_article_date_published'];
1117
+ }
1118
+ if(isset($custom_fields['saswp_article_date_modified'])){
1119
+ $input1['dateModified'] = $custom_fields['saswp_article_date_modified'];
1120
+ }
1121
+ if(isset($custom_fields['saswp_article_author_type'])){
1122
+ $input1['author']['@type'] = $custom_fields['saswp_article_author_type'];
1123
+ }
1124
+ if(isset($custom_fields['saswp_article_author_name'])){
1125
+ $input1['author']['name'] = $custom_fields['saswp_article_author_name'];
1126
+ }
1127
+ if(isset($custom_fields['saswp_article_author_description'])){
1128
+ $input1['author']['description'] = $custom_fields['saswp_article_author_description'];
1129
+ }
1130
+ if(isset($custom_fields['saswp_article_author_url'])){
1131
+ $input1['author']['url'] = $custom_fields['saswp_article_author_url'];
1132
+ }
1133
+ if(isset($custom_fields['saswp_article_organization_logo']) && isset($custom_fields['saswp_article_organization_name'])){
1134
+ $input1['publisher']['@type'] = 'Organization';
1135
+ $input1['publisher']['name'] = $custom_fields['saswp_article_organization_name'];
1136
+ $input1['publisher']['logo'] = $custom_fields['saswp_article_organization_logo'];
1137
+ }
1138
+ break;
1139
+
1140
+ case 'Photograph':
1141
+
1142
+ if(isset($custom_fields['saswp_photograph_image'])){
1143
+ $input1['image'] = $custom_fields['saswp_photograph_image'];
1144
+ }
1145
+ if(isset($custom_fields['saswp_photograph_url'])){
1146
+ $input1['url'] = saswp_validate_url($custom_fields['saswp_photograph_url']);
1147
+ }
1148
+ if(isset($custom_fields['saswp_photograph_inlanguage'])){
1149
+ $input1['inLanguage'] = $custom_fields['saswp_photograph_inlanguage'];
1150
+ }
1151
+ if(isset($custom_fields['saswp_photograph_headline'])){
1152
+ $input1['headline'] = $custom_fields['saswp_photograph_headline'];
1153
+ }
1154
+ if(isset($custom_fields['saswp_photograph_description'])){
1155
+ $input1['description'] = wp_strip_all_tags(strip_shortcodes( $custom_fields['saswp_photograph_description'] ));
1156
+ }
1157
+ if(isset($custom_fields['saswp_photograph_date_published'])){
1158
+ $input1['datePublished'] = $custom_fields['saswp_photograph_date_published'];
1159
+ }
1160
+ if(isset($custom_fields['saswp_photograph_date_modified'])){
1161
+ $input1['dateModified'] = $custom_fields['saswp_photograph_date_modified'];
1162
+ }
1163
+ if(isset($custom_fields['saswp_photograph_author_type'])){
1164
+ $input1['author']['@type'] = $custom_fields['saswp_photograph_author_type'];
1165
+ }
1166
+ if(isset($custom_fields['saswp_photograph_author_name'])){
1167
+ $input1['author']['name'] = $custom_fields['saswp_photograph_author_name'];
1168
+ }
1169
+ if(isset($custom_fields['saswp_photograph_author_description'])){
1170
+ $input1['author']['description'] = $custom_fields['saswp_photograph_author_description'];
1171
+ }
1172
+ if(isset($custom_fields['saswp_photograph_author_url'])){
1173
+ $input1['author']['url'] = $custom_fields['saswp_photograph_author_url'];
1174
+ }
1175
+ if(isset($custom_fields['saswp_photograph_organization_logo']) && isset($custom_fields['saswp_photograph_organization_name'])){
1176
+ $input1['publisher']['@type'] = 'Organization';
1177
+ $input1['publisher']['name'] = $custom_fields['saswp_photograph_organization_name'];
1178
+ $input1['publisher']['logo'] = $custom_fields['saswp_photograph_organization_logo'];
1179
+ }
1180
+
1181
  break;
1182
+
1183
  case 'SpecialAnnouncement':
1184
 
1185
  $location = array();
2582
  }
2583
 
2584
  break;
2585
+
2586
+ case 'TaxiService':
2587
+
2588
+ if(isset($custom_fields['saswp_taxi_service_schema_name'])){
2589
+ $input1['name'] = $custom_fields['saswp_taxi_service_schema_name'];
2590
+ }
2591
+ if(isset($custom_fields['saswp_taxi_service_schema_type'])){
2592
+ $input1['serviceType'] = $custom_fields['saswp_taxi_service_schema_type'];
2593
+ }
2594
+ if(isset($custom_fields['saswp_taxi_service_schema_additional_type'])){
2595
+ $input1['additionalType'] = $custom_fields['saswp_taxi_service_schema_additional_type'];
2596
+ }
2597
+ if(isset($custom_fields['saswp_taxi_service_schema_service_output'])){
2598
+ $input1['serviceOutput'] = $custom_fields['saswp_taxi_service_schema_service_output'];
2599
+ }
2600
+ if(isset($custom_fields['saswp_taxi_service_schema_provider_type']) && isset($custom_fields['saswp_taxi_service_schema_provider_name'])){
2601
+ $input1['provider']['@type'] = $custom_fields['saswp_taxi_service_schema_provider_type'];
2602
+ $input1['provider']['name'] = $custom_fields['saswp_taxi_service_schema_provider_name'];
2603
+
2604
+ if(isset($custom_fields['saswp_taxi_service_schema_image'])){
2605
+ $input1['provider']['image'] = $custom_fields['saswp_taxi_service_schema_image'];
2606
+ }
2607
+ }
2608
+ if(isset($custom_fields['saswp_taxi_service_schema_price_range'])){
2609
+ $input1['provider']['priceRange'] = $custom_fields['saswp_taxi_service_schema_price_range'];
2610
+ }
2611
+ if(isset($custom_fields['saswp_taxi_service_schema_locality'])){
2612
+ $input1['provider']['address']['addressLocality'] = $custom_fields['saswp_taxi_service_schema_locality'];
2613
+ }
2614
+ if(isset($custom_fields['saswp_taxi_service_schema_postal_code'])){
2615
+ $input1['provider']['address']['postalCode'] = $custom_fields['saswp_taxi_service_schema_postal_code'];
2616
+ }
2617
+ if(isset($custom_fields['saswp_taxi_service_schema_telephone'])){
2618
+ $input1['provider']['address']['telephone'] = $custom_fields['saswp_taxi_service_schema_telephone'];
2619
+ }
2620
+ if(isset($custom_fields['saswp_taxi_service_schema_description'])){
2621
+ $input1['description'] = wp_strip_all_tags(strip_shortcodes( $custom_fields['saswp_taxi_service_schema_description'] ));
2622
+ }
2623
+ if(isset($custom_fields['saswp_taxi_service_schema_area_served'])){
2624
+ $input1['areaServed'] = saswp_explode_comma_seprated($custom_fields['saswp_taxi_service_schema_area_served'], 'Place');
2625
+ }
2626
+ if(isset($custom_fields['saswp_taxi_service_schema_image'])){
2627
+ $input1['image'] = $custom_fields['saswp_taxi_service_schema_image'];
2628
+ }
2629
+ if(isset($custom_fields['saswp_taxi_service_schema_service_offer'])){
2630
+ $input1['hasOfferCatalog'] = $custom_fields['saswp_taxi_service_schema_service_offer'];
2631
+ }
2632
+
2633
+ break;
2634
 
2635
  case 'VideoObject':
2636
 
3198
  if(isset($custom_fields['saswp_person_schema_job_title'])){
3199
  $input1['jobTitle'] = $custom_fields['saswp_person_schema_job_title'];
3200
  }
3201
+
3202
+ if(isset($custom_fields['saswp_person_schema_company'])){
3203
+ $input1['worksFor']['@type'] = 'Organization';
3204
+ $input1['worksFor']['name'] = $custom_fields['saswp_person_schema_company'];
3205
+
3206
+ if(isset($custom_fields['saswp_person_schema_website'])){
3207
+ $input1['worksFor']['url'] = $custom_fields['saswp_person_schema_website'];
3208
+ }
3209
+ }
3210
+
3211
  if(isset($custom_fields['saswp_person_schema_award'])){
3212
  $input1['award'] = $custom_fields['saswp_person_schema_award'];
3213
  }
3579
  }
3580
 
3581
  break;
3582
+
3583
+ case 'BoatTrip':
3584
+
3585
+ if(isset($custom_fields['saswp_boat_trip_schema_name'])){
3586
+ $input1['name'] = $custom_fields['saswp_boat_trip_schema_name'];
3587
+ }
3588
+ if(isset($custom_fields['saswp_boat_trip_schema_description'])){
3589
+ $input1['description'] = wp_strip_all_tags(strip_shortcodes( $custom_fields['saswp_boat_trip_schema_description'] ));
3590
+ }
3591
+ if(isset($custom_fields['saswp_boat_trip_schema_url'])){
3592
+ $input1['url'] = saswp_validate_url($custom_fields['saswp_boat_trip_schema_url']);
3593
+ }
3594
+ if(isset($custom_fields['saswp_boat_trip_schema_image'])){
3595
+ $input1['image'] = $custom_fields['saswp_boat_trip_schema_image'];
3596
+ }
3597
+
3598
+ break;
3599
 
3600
  case 'MedicalCondition':
3601
 
4467
  );
4468
 
4469
  break;
4470
+
4471
+ case 'Photograph':
4472
+ $input1 = array(
4473
+ '@context' => saswp_context_url(),
4474
+ '@type' => 'Photograph',
4475
+ '@id' => trailingslashit(saswp_get_permalink()).'#Photograph',
4476
+ 'url' => saswp_get_permalink(),
4477
+ 'inLanguage' => get_bloginfo('language'),
4478
+ 'headline' => saswp_get_the_title(),
4479
+ 'description' => saswp_get_the_excerpt(),
4480
+ 'datePublished' => esc_html($date),
4481
+ 'dateModified' => esc_html($modified_date),
4482
+ 'author' => saswp_get_author_details(),
4483
+ 'publisher' => array(
4484
+ '@type' => 'Organization',
4485
+ 'logo' => array(
4486
+ '@type' => 'ImageObject',
4487
+ 'url' => esc_url($logo),
4488
+ 'width' => esc_attr($width),
4489
+ 'height' => esc_attr($height),
4490
+ ),
4491
+ 'name' => esc_attr($site_name),
4492
+ ),
4493
+
4494
+ );
4495
+
4496
+ $block_data = saswp_get_gutenberg_block_data('core/gallery');
4497
+
4498
+ if(isset($block_data['attrs']['ids']) && is_array($block_data['attrs']['ids']) && !empty($block_data['attrs']['ids']) ){
4499
+
4500
+ $image_arr = array();
4501
+
4502
+ foreach($block_data['attrs']['ids'] as $image_id){
4503
+ $image_arr[] = saswp_get_image_by_id($image_id);
4504
+ }
4505
+
4506
+ $input1['mainEntityOfPage']['@type'] = 'ImageGallery';
4507
+ $input1['mainEntityOfPage']['image'] = $image_arr;
4508
+ }
4509
+
4510
+ break;
4511
  case 'SpecialAnnouncement':
4512
  $input1 = array(
4513
  '@context' => saswp_context_url(),
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: magazine3
3
  Tags: Schema, Structured Data, Google Snippets, Rich Snippets, Schema.org, SEO, AMP
4
  Requires at least: 3.0
5
- Tested up to: 5.6
6
- Stable tag: 1.9.66
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -120,6 +120,16 @@ You can contact us from [here](http://structured-data-for-wp.com/contact-us/)
120
 
121
  == Changelog ==
122
 
 
 
 
 
 
 
 
 
 
 
123
  = 1.9.66 (06 March 2021) =
124
 
125
  * Added: Compatibility with Rate My Post plugin ( https://wordpress.org/plugins/rate-my-post/ ) #378
2
  Contributors: magazine3
3
  Tags: Schema, Structured Data, Google Snippets, Rich Snippets, Schema.org, SEO, AMP
4
  Requires at least: 3.0
5
+ Tested up to: 5.7
6
+ Stable tag: 1.9.67
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
120
 
121
  == Changelog ==
122
 
123
+ = 1.9.67 (09 March 2021) =
124
+
125
+ * Fixed: Fatal error occuring, when trying to activate elemtor plugin along with the saswp plugin(While using PHP 8 versioin) #1336
126
+ * Fixed: Value for the Image Field is required in service schema #1337
127
+ * Added: WorksFor Property added to Person schema #1145
128
+ * Added: Photograph and ImageGallery schema #790
129
+ * Added: TaxiService Schema #1083
130
+ * Added: BoatTrip schema #1135
131
+
132
+
133
  = 1.9.66 (06 March 2021) =
134
 
135
  * Added: Compatibility with Rate My Post plugin ( https://wordpress.org/plugins/rate-my-post/ ) #378
structured-data-for-wp.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Schema & Structured Data for WP & AMP
4
  Description: Schema & Structured Data adds Google Rich Snippets markup according to Schema.org guidelines to structure your site for SEO. (AMP Compatible)
5
- Version: 1.9.66
6
  Text Domain: schema-and-structured-data-for-wp
7
  Domain Path: /languages
8
  Author: Magazine3
@@ -13,7 +13,7 @@ License: GPL2
13
  // Exit if accessed directly.
14
  if ( ! defined( 'ABSPATH' ) ) exit;
15
 
16
- define('SASWP_VERSION', '1.9.66');
17
  define('SASWP_DIR_NAME_FILE', __FILE__ );
18
  define('SASWP_DIR_NAME', dirname( __FILE__ ));
19
  define('SASWP_DIR_URI', plugin_dir_url(__FILE__));
2
  /*
3
  Plugin Name: Schema & Structured Data for WP & AMP
4
  Description: Schema & Structured Data adds Google Rich Snippets markup according to Schema.org guidelines to structure your site for SEO. (AMP Compatible)
5
+ Version: 1.9.67
6
  Text Domain: schema-and-structured-data-for-wp
7
  Domain Path: /languages
8
  Author: Magazine3
13
  // Exit if accessed directly.
14
  if ( ! defined( 'ABSPATH' ) ) exit;
15
 
16
+ define('SASWP_VERSION', '1.9.67');
17
  define('SASWP_DIR_NAME_FILE', __FILE__ );
18
  define('SASWP_DIR_NAME', dirname( __FILE__ ));
19
  define('SASWP_DIR_URI', plugin_dir_url(__FILE__));