File manager - Edit - /home/palg2351/public_html/wp-content/plugins/bit-integrations/includes/Triggers/WC/WCHelper.php
Back
<?php namespace BitCode\FI\Triggers\WC; use BitCode\FI\Core\Util\Helper; use WC_Product_Booking; class WCHelper { public static function accessBookingProductData($product) { if (!$product instanceof WC_Product_Booking) { return []; } return $product->get_data(); } public static function process_booking_data($productData, $userData, $customer_id) { return [ 'product_id' => $productData['id'], 'product_name' => $productData['name'], 'product_slug' => $productData['slug'], // 'product_type' => $productData['type'], 'product_status' => $productData['status'], 'product_featured' => $productData['featured'], 'product_description' => $productData['description'], 'product_short_description' => $productData['short_description'], 'product_price' => $productData['price'], 'product_regular_price' => $productData['regular_price'], 'product_sale_price' => $productData['sale_price'], 'total_sales' => $productData['total_sales'], // 'product_quantity' => $productData['quantity'], 'product_sku' => $productData['sku'], 'product_category_ids' => $productData['category_ids'], 'stock_status' => $productData['stock_status'], // 'product_tags' => $productData['tags'], 'image_url' => wp_get_attachment_image_url((int) $productData['image_id'], 'full'), 'cost' => $productData['cost'], 'display_cost' => $productData['display_cost'], 'qty' => $productData['qty'], 'customer_id' => $customer_id, 'customer_email' => $userData['user_email'], 'customer_first_name' => $userData['first_name'], 'customer_last_name' => $userData['last_name'], 'customer_nickname' => $userData['nickname'], 'avatar_url' => $userData['avatar_url'], ]; } public static function getAllWcProducts($id) { $products = wc_get_products(['status' => 'publish', 'limit' => -1]); $allProducts = []; foreach ($products as $product) { $productId = $product->get_id(); $productTitle = $product->get_title(); $productType = $product->get_type(); $productSku = $product->get_sku(); $allProducts[] = (object) [ 'product_id' => $productId, 'product_title' => $productTitle, 'product_type' => $productType, 'product_sku' => $productSku, ]; if ($id == WCController::USER_REVIEWS_A_PRODUCT) { $allProducts = [['product_id' => 'any', 'product_title' => __('Any Product', 'bit-integrations'), 'product_type' => '', 'product_sku' => '']] + $allProducts; } } return $allProducts; } public static function getReviewRating($comment_ID) { global $wpdb; $rating = $wpdb->get_results( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}commentmeta WHERE comment_id = %d AND meta_key = 'rating'", $comment_ID ) ); return $rating[0]->meta_value; } public static function getAllWcVariableProduct() { $products = wc_get_products(['status' => 'publish', 'limit' => -1, 'type' => 'variable']); $finalProduct = [['product_id' => 'any', 'product_title' => __('Any Product', 'bit-integrations')]]; $allProducts = []; foreach ($products as $product) { $productId = $product->get_id(); $productTitle = $product->get_title(); $allProducts[] = (object) [ 'product_id' => $productId, 'product_title' => $productTitle, ]; } foreach ($allProducts as $product) { $finalProduct[] = [ 'product_id' => $product->product_id, 'product_title' => $product->product_title, ]; } return $finalProduct; } public static function getAllVariations($product_id) { if ($product_id === 'any') { $allVariations[] = (object) [ 'variation_id' => 'any', 'variation_title' => __('Any Variation', 'bit-integrations'), ]; } elseif ($product_id !== '') { $product = wc_get_product($product_id); $variationType = array_key_first($product->get_attributes()); $variations = $product->get_available_variations(); $allVariations = []; foreach ($variations as $variation) { $variationId = $variation['variation_id']; $variationTitle = $variationType . ' ' . $variation['attributes']["attribute_{$variationType}"]; $allVariations[] = (object) [ 'variation_id' => $variationId, 'variation_title' => $variationTitle, ]; } } return $allVariations; } public static function processProductData($postId, $extra = []) { $product = wc_get_product($postId); $productData = self::accessProductData($product); $acfFieldGroups = Helper::acfGetFieldGroups(['product']); $acfFielddata = Helper::getAcfFieldData($acfFieldGroups, $postId); return array_merge($productData, $acfFielddata, $extra); } public static function processOrderData($orderId, $order = null, $extra = []) { $order = empty($order) ? wc_get_order($orderId) : $order; $orderData = self::accessOrderData($order); $acfFieldGroups = Helper::acfGetFieldGroups(['shop_order']); $acfFielddata = Helper::getAcfFieldData($acfFieldGroups, $orderId); $checkoutFields = Helper::getWCCustomCheckoutData($order); $flexibleFields = apply_filters('btcbi_woocommerce_flexible_checkout_fields_value', (array) $order); return array_merge($orderData, $acfFielddata, $checkoutFields, $flexibleFields, $extra); } public static function accessOrderData($order) { $data = [ 'id' => $order->get_id() ?? '', 'order_key' => $order->get_order_key() ?? '', 'cart_tax' => $order->get_cart_tax() ?? '', 'currency' => $order->get_currency() ?? '', 'discount_tax' => $order->get_discount_tax() ?? '', 'discount_to_display' => $order->get_discount_to_display() ?? '', 'discount_total' => $order->get_discount_total() ?? '', 'fees' => $order->get_fees() ?? '', 'shipping_tax' => $order->get_shipping_tax() ?? '', 'shipping_total' => $order->get_shipping_total() ?? '', 'tax_totals' => $order->get_tax_totals() ?? '', 'total' => $order->get_total() ?? '', 'total_refunded' => $order->get_total_refunded() ?? '', 'total_tax_refunded' => $order->get_total_tax_refunded() ?? '', 'total_shipping_refunded' => $order->get_total_shipping_refunded() ?? '', 'total_qty_refunded' => $order->get_total_qty_refunded() ?? '', 'remaining_refund_amount' => $order->get_remaining_refund_amount() ?? '', 'shipping_method' => $order->get_shipping_method() ?? '', 'date_created' => \is_null($order->get_date_created()) ? $order->get_date_created() : $order->get_date_created()->format('Y-m-d H:i:s'), 'date_modified' => \is_null($order->get_date_modified()) ? $order->get_date_modified() : $order->get_date_modified()->format('Y-m-d H:i:s'), 'date_completed' => \is_null($order->get_date_completed()) ? $order->get_date_completed() : $order->get_date_completed()->format('Y-m-d H:i:s'), 'date_paid' => \is_null($order->get_date_paid()) ? $order->get_date_paid() : $order->get_date_paid()->format('Y-m-d H:i:s'), 'customer_id' => $order->get_customer_id() ?? '', 'created_via' => $order->get_created_via() ?? '', 'customer_note' => $order->get_customer_note() ?? '', 'billing_first_name' => $order->get_billing_first_name() ?? '', 'billing_last_name' => $order->get_billing_last_name() ?? '', 'billing_company' => $order->get_billing_company() ?? '', 'billing_address_1' => $order->get_billing_address_1() ?? '', 'billing_address_2' => $order->get_billing_address_2() ?? '', 'billing_city' => $order->get_billing_city() ?? '', 'billing_state' => $order->get_billing_state() ?? '', 'billing_postcode' => $order->get_billing_postcode() ?? '', 'billing_country' => $order->get_billing_country() ?? '', 'billing_email' => $order->get_billing_email() ?? '', 'billing_phone' => $order->get_billing_phone() ?? '', 'shipping_first_name' => $order->get_shipping_first_name() ?? '', 'shipping_last_name' => $order->get_shipping_last_name() ?? '', 'shipping_company' => $order->get_shipping_company() ?? '', 'shipping_address_1' => $order->get_shipping_address_1() ?? '', 'shipping_address_2' => $order->get_shipping_address_2() ?? '', 'shipping_city' => $order->get_shipping_city() ?? '', 'shipping_state' => $order->get_shipping_state() ?? '', 'shipping_postcode' => $order->get_shipping_postcode() ?? '', 'shipping_country' => $order->get_shipping_country() ?? '', 'payment_method' => $order->get_payment_method() ?? '', 'payment_method_title' => $order->get_payment_method_title() ?? '', 'status' => $order->get_status() ?? '', 'checkout_order_received_url' => $order->get_checkout_order_received_url() ?? '', 'line_items' => [], 'product_names' => '', 'line_items_quantity' => 0 ]; if (\defined('WC_VERSION') && version_compare(WC_VERSION, '8.5.1', '>=')) { $data += [ '_wc_order_attribution_referrer' => $order->get_meta('_wc_order_attribution_referrer'), '_wc_order_attribution_user_agent' => $order->get_meta('_wc_order_attribution_user_agent'), '_wc_order_attribution_utm_source' => $order->get_meta('_wc_order_attribution_utm_source'), '_wc_order_attribution_device_type' => $order->get_meta('_wc_order_attribution_device_type'), '_wc_order_attribution_source_type' => $order->get_meta('_wc_order_attribution_source_type'), '_wc_order_attribution_session_count' => $order->get_meta('_wc_order_attribution_session_count'), '_wc_order_attribution_session_entry' => $order->get_meta('_wc_order_attribution_session_entry'), '_wc_order_attribution_session_pages' => $order->get_meta('_wc_order_attribution_session_pages'), '_wc_order_attribution_session_start_time' => $order->get_meta('_wc_order_attribution_session_start_time'), ]; } foreach ($order->get_items() as $item) { $productId = $item->get_product_id(); $product = $item->get_product(); $itemData = [ 'product_id' => $productId, 'variation_id' => $item->get_variation_id() ?? '', 'product_name' => $item->get_name() ?? '', 'quantity' => $item->get_quantity() ?? '', 'subtotal' => $item->get_subtotal() ?? '', 'total' => $item->get_total() ?? '', 'subtotal_tax' => $item->get_subtotal_tax() ?? '', 'tax_class' => $item->get_tax_class() ?? '', 'tax_status' => $item->get_tax_status() ?? '', 'product_sku' => $product->get_sku() ?? '', 'product_unit_price' => $product->get_price() ?? '', ]; $acfFieldGroups = Helper::acfGetFieldGroups(['product']); $acfFielddata = Helper::getAcfFieldData($acfFieldGroups, $productId); $data['line_items'][] = (object) array_merge($itemData, $acfFielddata); } $data['product_names'] = implode(', ', array_column($data['line_items'], 'product_name')); $data['line_items_quantity'] = \count($data['line_items']); return $data; } public static function accessProductData($product) { if (empty($product)) { return []; } $productId = $product->get_id(); $imageUrl = wp_get_attachment_image_url($product->get_image_id(), 'full'); $imageIds = $product->get_gallery_image_ids(); $galleryImages = []; if (\count($imageIds)) { foreach ($imageIds as $id) { $galleryImages[] = wp_get_attachment_image_url($id, 'full'); } } return [ 'post_id' => $productId, 'post_title' => $product->get_name(), 'post_content' => $product->get_description(), 'post_excerpt' => $product->get_short_description(), 'post_date' => $product->get_date_created(), 'post_date_gmt' => $product->get_date_modified(), 'post_status' => $product->get_status(), 'tags_input' => $product->get_tag_ids(), 'post_category' => wc_get_product_category_list($productId), '_visibility' => $product->get_catalog_visibility(), '_featured' => $product->get_featured(), '_regular_price' => $product->get_regular_price(), '_sale_price' => $product->get_sale_price(), '_sale_price_dates_from' => $product->get_date_on_sale_from(), '_sale_price_dates_to' => $product->get_date_on_sale_to(), '_sku' => $product->get_sku(), '_manage_stock' => $product->get_manage_stock(), '_stock' => $product->get_stock_quantity(), '_backorders' => $product->get_backorders(), '_low_stock_amount' => 1, '_stock_status' => $product->get_stock_status(), '_sold_individually' => $product->get_sold_individually(), '_weight' => $product->get_weight(), '_length' => $product->get_length(), '_width' => $product->get_width(), '_height' => $product->get_height(), '_purchase_note' => $product->get_purchase_note(), 'menu_order' => $product->get_menu_order(), 'comment_status' => $product->get_reviews_allowed(), '_virtual' => $product->get_virtual(), '_downloadable' => $product->get_downloadable(), '_download_limit' => $product->get_download_limit(), '_download_expiry' => $product->get_download_expiry(), 'product_type' => $product->get_type(), '_product_url' => get_permalink($productId), '_tax_status' => $product->get_tax_status(), '_tax_class' => $product->get_tax_class(), '_product_image' => $imageUrl, '_product_gallery' => $galleryImages, ]; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.19 |
proxy
|
phpinfo
|
Settings