PluginProbe
Timetics – Appointment Booking Calendar & Scheduling / 1.0.62
Timetics – Appointment Booking Calendar & Scheduling v1.0.62
1.0.62 1.0.63 1.0.61 1.0.60 1.0.59 1.0.58 1.0.57 1.0.56 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 All 64 releases
timetics / core / integrations / woocommerce / product.php

product.php in Timetics – Appointment Booking Calendar & Scheduling 1.0.62, at core/integrations/woocommerce/product.php

53 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WooCommerce Product
4 *
5 * @package Timetics
6 */
7 namespace Timetics\Core\Integrations\Woocommerce;
8
9 defined( 'ABSPATH' ) || exit;
10
11 /**
12 * WooCommerce Product class
13 */
14 class Product {
15 /**
16 * Creat product for woocommer
17 *
18 * @return bool
19 */
20 public function create( $meeting ) {
21 $product_id = $meeting->get_wc_product_id();
22
23 if ( $product_id ) {
24 $product = wc_get_product( $product_id );
25 } else {
26 $product = new \WC_Product_Simple ();
27 }
28
29 $product_category = get_term_by( 'slug', 'timetics-meeting', 'product_cat' );
30 $product_category_id = ! empty( $product_category ) ? $product_category->term_id : 0;
31
32 $product->set_name( $meeting->get_name() );
33 $product->set_short_description( $meeting->get_description() );
34 $product->set_price( $meeting->get_price() );
35 $product->set_status( 'publish' );
36 $product->set_category_ids( [$product_category_id] );
37
38 $product->update_meta_data( 'timetics_meeting_id', $meeting->get_id() );
39
40 // Store meeting details as product meta for checkout/email display
41 $product->update_meta_data( 'timetics_duration', $meeting->get_duration() );
42 $product->update_meta_data( 'timetics_timezone', $meeting->get_timezone() );
43
44 $product_id = $product->save();
45
46 $meeting->update( [
47 'wc_product_id' => $product->get_id(),
48 ] );
49
50 return $product_id;
51 }
52 }
53