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