1: <?php
2: /**
3: * Support for WooCommerce
4: *
5: * @package event-post
6: * @version 6.0.1
7: * @since 5.8.0
8: */
9:
10: namespace EventPost;
11:
12: if ( ! defined( 'ABSPATH' ) ) exit;
13:
14: \add_filter( 'woocommerce_product_tabs', '\EventPost\woocommerce_product_tabs' );
15: \add_filter( 'event-post-rich-result', '\EventPost\woocommerce_rich_result', 10, 2 );
16:
17: function woocommerce_product_tabs($tabs){
18: $event = \EventPost()->retreive();
19: if($event && $event->start){
20: $tabs['event-post'] = [
21: 'title' => __('Event', 'event-post'),
22: 'priority' => 20,
23: 'callback' => '\EventPost\product_event_tab',
24: ];
25: }
26: return $tabs;
27: }
28:
29: function product_event_tab($key, $tab){
30: $event = \EventPost()->retreive();
31: if($event){
32: \EventPost()->load_map_scripts();
33: include plugin_dir_path( __DIR__ ) . 'views/product-tab.php';
34: }
35: }
36:
37: function woocommerce_rich_result($rich_data, $event){
38: $gmt_offset = get_option('gmt_offset ');
39: if($event->post_type == 'product'){
40: $rich_data['offers'] = array(
41: '@type'=>'Offer',
42: 'url'=>get_permalink($event->ID),
43: 'price'=>\EventPost()->get_price($event),
44: 'priceCurrency'=>get_woocommerce_currency(),
45: 'availability'=>'https://schema.org/InStock',
46: 'validFrom'=>str_replace(' ', 'T', $event->post_date_gmt).$gmt_offset,
47: );
48: }
49: return $rich_data;
50: }
51: