diff --git a/.drone.yml b/.drone.yml index e1fefd3..c852380 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,4 +15,4 @@ steps: from_secret: drone_ssh_server.example.com when: branch: - - main + - main diff --git a/wp-content/themes/mont58-coffee/functions.php b/wp-content/themes/mont58-coffee/functions.php index 5f675e4..ef62330 100644 --- a/wp-content/themes/mont58-coffee/functions.php +++ b/wp-content/themes/mont58-coffee/functions.php @@ -3,28 +3,32 @@ /** * Equeue the child theme stylesheet. */ -function mont58coffee_enqueue_styles() { - - wp_enqueue_style('child-style', - get_stylesheet_uri(), - array( 'bridge' ), - wp_get_theme()->get( 'Version' ) - ); +function mont58coffee_enqueue_styles() +{ + wp_enqueue_style( + "child-style", + get_stylesheet_uri(), + ["bridge"], + wp_get_theme()->get("Version") + ); } -add_action( 'wp_enqueue_scripts', 'mont58coffee_enqueue_styles' ); +add_action("wp_enqueue_scripts", "mont58coffee_enqueue_styles"); -add_filter( 'get_terms', 'ts_get_subcategory_terms', 10, 3 ); -function ts_get_subcategory_terms( $terms, $taxonomies, $args ) { -$new_terms = array(); -// if it is a product category and on the shop page -if ( in_array( 'product_cat', $taxonomies ) && ! is_admin() &&is_shop() ) { -foreach( $terms as $key => $term ) { -if ( !in_array( $term->slug, array( 'african-coffees' ) ) ) { //pass the slug name here -$new_terms[] = $term; -}} -$terms = $new_terms; -} -return $terms; +add_filter("get_terms", "ts_get_subcategory_terms", 10, 3); +function ts_get_subcategory_terms($terms, $taxonomies, $args) +{ + $new_terms = []; + // if it is a product category and on the shop page + if (in_array("product_cat", $taxonomies) && !is_admin() && is_shop()) { + foreach ($terms as $key => $term) { + if (!in_array($term->slug, ["african-coffees"])) { + //pass the slug name here + $new_terms[] = $term; + } + } + $terms = $new_terms; + } + return $terms; } /** @@ -36,13 +40,19 @@ return $terms; * License: GPL v2 */ -function eg_extend_subscription_period_intervals( $intervals ) { +function eg_extend_subscription_period_intervals($intervals) +{ + $intervals[10] = sprintf( + __("every %s", "my-text-domain"), + WC_Subscriptions::append_numeral_suffix(10) + ); - $intervals[10] = sprintf( __( 'every %s', 'my-text-domain' ), WC_Subscriptions::append_numeral_suffix( 10 ) ); - - return $intervals; + return $intervals; } -add_filter( 'woocommerce_subscription_period_interval_strings', 'eg_extend_subscription_period_intervals' ); +add_filter( + "woocommerce_subscription_period_interval_strings", + "eg_extend_subscription_period_intervals" +); /** * Snippet Name: Mont58 Coffee Label @@ -51,149 +61,188 @@ add_filter( 'woocommerce_subscription_period_interval_strings', 'eg_extend_subsc * Author: Autonomic Co-op * Author URI: https://autonomic.zone/ * License: GPL2 -*/ + */ -function process_coffee_items($order, &$order_coffees, &$seen_subscriptions) { - // Iterate through all items in the order - foreach ($order->get_items() as $order_item) { - // Check if the item is a subscription (based on name containing "subscription") - if (stripos($order_item->get_name(), "subscription") !== false) { - // Get the coffee list associated with the subscription item - $coffee_list = get_field("coffee_list", $order_item->get_product_id()); +function process_coffee_items($order, &$order_coffees, &$seen_subscriptions) +{ + // Iterate through all items in the order + foreach ($order->get_items() as $order_item) { + // Check if the item is a subscription (based on name containing "subscription") + if (stripos($order_item->get_name(), "subscription") !== false) { + // Get the coffee list associated with the subscription item + $coffee_list = get_field( + "coffee_list", + $order_item->get_product_id() + ); - // TODO log or display this error - if (!$coffee_list) { - continue; - } + // TODO log or display this error + if (!$coffee_list) { + continue; + } - // Get the list of coffees from the coffee list - $coffees_in_list = get_field("coffees", $coffee_list); - // Get the quantity of this specific item in the order - $item_quantity = $order_item->get_quantity(); + // Get the list of coffees from the coffee list + $coffees_in_list = get_field("coffees", $coffee_list); + // Get the quantity of this specific item in the order + $item_quantity = $order_item->get_quantity(); - // Process each quantity of the subscription item - for ($x = 0; $x < $item_quantity; $x++) { - $coffee_list_id = $coffee_list->ID; + // Process each quantity of the subscription item + for ($x = 0; $x < $item_quantity; $x++) { + $coffee_list_id = $coffee_list->ID; - // Check if this coffee list has been seen before in this order - if (array_key_exists($coffee_list_id, $seen_subscriptions)) { - // Increment the count of times this coffee list has been encountered - $seen_subscriptions[$coffee_list_id]++; - // Calculate the index to select a coffee from the list - $index = $seen_subscriptions[$coffee_list_id]; - $coffee = $coffees_in_list[$index % sizeof($coffees_in_list)]; - } else { - // If this coffee list is encountered for the first time in this order - $seen_subscriptions[$coffee_list_id] = 0; - // Select the last coffee from the list - $coffee = array_pop(array_reverse($coffees_in_list)); - } + // Check if this coffee list has been seen before in this order + if (array_key_exists($coffee_list_id, $seen_subscriptions)) { + // Increment the count of times this coffee list has been encountered + $seen_subscriptions[$coffee_list_id]++; + // Calculate the index to select a coffee from the list + $index = $seen_subscriptions[$coffee_list_id]; + $coffee = + $coffees_in_list[$index % sizeof($coffees_in_list)]; + } else { + // If this coffee list is encountered for the first time in this order + $seen_subscriptions[$coffee_list_id] = 0; + // Select the last coffee from the list + $coffee = array_pop(array_reverse($coffees_in_list)); + } - // Add the selected coffee with its associated coffee list to the order_coffees array - array_push($order_coffees, array("coffee_list" => $coffee_list, "coffee" => $coffee)); - } - } - } + // Add the selected coffee with its associated coffee list to the order_coffees array + array_push($order_coffees, [ + "coffee_list" => $coffee_list, + "coffee" => $coffee, + ]); + } + } + } } // Handle new order creation event -function action_woocommerce_new_order($order_id, $order) { - // Initialize arrays to store processed data - $order_coffees = array(); - $seen_subscriptions = array(); +function action_woocommerce_new_order($order_id, $order) +{ + // Initialize arrays to store processed data + $order_coffees = []; + $seen_subscriptions = []; - // Process coffee items in the new order - process_coffee_items($order, $order_coffees, $seen_subscriptions); + // Process coffee items in the new order + process_coffee_items($order, $order_coffees, $seen_subscriptions); - // Update the custom field "coffees" with the processed coffee data for the order - update_field("coffees", $order_coffees, $order_id); + // Update the custom field "coffees" with the processed coffee data for the order + update_field("coffees", $order_coffees, $order_id); } // Hook the above function to the 'woocommerce_new_order' action -add_action('woocommerce_new_order', 'action_woocommerce_new_order', 10, 2); +add_action("woocommerce_new_order", "action_woocommerce_new_order", 10, 2); // Handle renewal order creation event -function action_wcs_renewal_order_created($order, $subscription) { - // Retrieve related orders of the subscription excluding the current renewal order - $last_orders = wcs_get_subscription($subscription)->get_related_orders('ids', array('parent', 'renewal')); - unset($last_orders[$order->get_ID()]); +function action_wcs_renewal_order_created($order, $subscription) +{ + // Retrieve related orders of the subscription excluding the current renewal order + $last_orders = wcs_get_subscription($subscription)->get_related_orders( + "ids", + ["parent", "renewal"] + ); + unset($last_orders[$order->get_ID()]); - // If there are previous orders related to the subscription - if (sizeof($last_orders) > 0) { - // Get the ID of the most recent previous order - $last_order_id = max($last_orders); - $last_order = wc_get_order($last_order_id); - // Get the processed coffees from the most recent previous order - $last_order_coffees = get_field("coffees", $last_order_id); + // If there are previous orders related to the subscription + if (sizeof($last_orders) > 0) { + // Get the ID of the most recent previous order + $last_order_id = max($last_orders); + $last_order = wc_get_order($last_order_id); + // Get the processed coffees from the most recent previous order + $last_order_coffees = get_field("coffees", $last_order_id); - // Initialize arrays to store processed data for the current order - $order_coffees = array(); - $seen_subscriptions = array(); + // Initialize arrays to store processed data for the current order + $order_coffees = []; + $seen_subscriptions = []; - // Get the latest coffee seen in each coffee list from the previous order - foreach(array_reverse($last_order_coffees) as $last_order_coffee) { - if (array_key_exists($last_order_coffee["coffee_list"]->ID, $seen_subscriptions)) { - continue; - } - $position_in_list = array_search( - $last_order_coffee["coffee"]->ID, - $last_order_coffee["coffee_list"]->coffees - ); - if (!$position_in_list) { - // ignore this, can't find it in list anymore - continue; - } - $seen_subscriptions[$last_order_coffee["coffee_list"]->ID] = $position_in_list; - } + // Get the latest coffee seen in each coffee list from the previous order + foreach (array_reverse($last_order_coffees) as $last_order_coffee) { + if ( + array_key_exists( + $last_order_coffee["coffee_list"]->ID, + $seen_subscriptions + ) + ) { + continue; + } + $position_in_list = array_search( + $last_order_coffee["coffee"]->ID, + $last_order_coffee["coffee_list"]->coffees + ); + if (!$position_in_list) { + // ignore this, can't find it in list anymore + continue; + } + $seen_subscriptions[ + $last_order_coffee["coffee_list"]->ID + ] = $position_in_list; + } - // Process coffee items based on the coffees in the last order - process_coffee_items($last_order, $order_coffees, $seen_subscriptions); + // Process coffee items based on the coffees in the last order + process_coffee_items($last_order, $order_coffees, $seen_subscriptions); - // Update the custom field "coffees" with the processed coffee data for the current renewal order - update_field("coffees", $order_coffees, $order->get_ID()); - } + // Update the custom field "coffees" with the processed coffee data for the current renewal order + update_field("coffees", $order_coffees, $order->get_ID()); + } } // Hook the above function to the 'wcs_renewal_order_created' action -add_action('wcs_renewal_order_created', 'action_wcs_renewal_order_created', 10, 2); +add_action( + "wcs_renewal_order_created", + "action_wcs_renewal_order_created", + 10, + 2 +); // Add a sidepanel on WooCommerce order pages -add_action('add_meta_boxes', 'mont58_coffee_label_add_sidepanel'); +add_action("add_meta_boxes", "mont58_coffee_label_add_sidepanel"); -function mont58_coffee_label_add_sidepanel() { - add_meta_box( - 'mont58_coffee_label_sidepanel', - 'Coffee Label', - 'mont58_coffee_label_render_sidepanel', - 'shop_order', - 'side', - 'high' - ); +function mont58_coffee_label_add_sidepanel() +{ + add_meta_box( + "mont58_coffee_label_sidepanel", + "Coffee Label", + "mont58_coffee_label_render_sidepanel", + "shop_order", + "side", + "high" + ); } -function mont58_coffee_label_render_sidepanel($post) { - // Render the content of the sidepanel here - $order_ids = array($post->ID); - echo 'View Label'; +function mont58_coffee_label_render_sidepanel($post) +{ + // Render the content of the sidepanel here + $order_ids = [$post->ID]; + echo 'View Label'; } // Load custom template -function load_custom_template($template) { - if (is_page('coffee-label')) { - return plugin_dir_path(__FILE__) . 'template-order-label.php'; - } +function load_custom_template($template) +{ + if (is_page("coffee-label")) { + return plugin_dir_path(__FILE__) . "template-order-label.php"; + } - return $template; + return $template; } -add_filter('template_include', 'load_custom_template'); +add_filter("template_include", "load_custom_template"); -add_filter('bulk_actions-edit-shop_order', function($bulk_actions) { - $bulk_actions['generate-label'] = __('Generate label', 'txtdomain'); - return $bulk_actions; +add_filter("bulk_actions-edit-shop_order", function ($bulk_actions) { + $bulk_actions["generate-label"] = __("Generate label", "txtdomain"); + return $bulk_actions; }); -add_filter('handle_bulk_actions-edit-shop_order', function($redirect_url, $action, $post_ids) { - if ($action == 'generate-label') { - $redirect_url = add_query_arg('order_ids', $post_ids, "/coffee-label"); - } - return $redirect_url; -}, 10, 3); +add_filter( + "handle_bulk_actions-edit-shop_order", + function ($redirect_url, $action, $post_ids) { + if ($action == "generate-label") { + $redirect_url = add_query_arg( + "order_ids", + $post_ids, + "/coffee-label" + ); + } + return $redirect_url; + }, + 10, + 3 +); diff --git a/wp-content/themes/mont58-coffee/template-order-label.php b/wp-content/themes/mont58-coffee/template-order-label.php index af460e0..1c8f4f3 100644 --- a/wp-content/themes/mont58-coffee/template-order-label.php +++ b/wp-content/themes/mont58-coffee/template-order-label.php @@ -1,4 +1,5 @@ - @@ -81,70 +82,74 @@
Roast
Roasted on:
- +