Preorder
Customisations WPPizza Preorder
Highlighting preorders for days after today in *emails* sent (for print templates, simply use css declarations)
Your email template(s) selected MUST be set to “Html” for this to make any difference set conditionals as required
@param: array
@param: array
@param: str
@param: int
@param: array
@return: array
add_filter( 'wppizza_filter_template_section_customer_styles', 'myprefix_set_email_styles', 10, 5 ); function myprefix_set_email_styles($template_styles, $parameters, $template_type, $template_id, $order){ /* restricting to email templates here */ if($template_type == 'emails'){ /* set as variable for ease of use */ $pluginSlug = 'wppizza_preorder'; /* get preorder meta value / timestamp this will be something like '2021-02-11 13:45:00' OR 'asap' if nothing was selected */ $preorder = wppizza_get_order_meta($order['ordervars']['order_id']['value'], $pluginSlug, true ); /* end of day today, based on wordpress timezone settings current time */ $eod = date('Y-m-d 23:59:59', WPPIZZA_WP_TIME); /* as an example, make the preorder text in the emails red if preorder time is on/after midnight tonight and set fontsize set your conditionals as required */ if($preorder !='asap' && $preorder > $eod ){ $template_styles[''.$pluginSlug.'-tdall'] = 'color:red;font-size:120%'; } } return $template_styles; }
Adding additional date format(s) – (see php date format for details)
As with all customisations, use at your own risk. You should test this thoroughly, especially if you want to use textual representations of a part of the date (months, weekdays) or separators other than:
- “/”(slash)
- “-“(hyphen)
- ” “(space)
- “.”(dots)
Whatever you do, do not use/enable “j F, Y” here as the comma after a textual month will stop the javascript library used from validating the date
@param: array
@return: array
add_filter( 'wppizza_po_filter_dateformat', 'myprefix_add_po_date_format'); function myprefix_add_po_date_format($date_format){ /* just as example how to do this, this already exists as an option */ $date_format[] = 'M j, Y'; return $date_format; }
Alter preorder date/time format *after an order has been made* (I.e in thank you page, emails etc ), regardless of plugin settings
@param: array
@param: array
@param: array
@param: array
@return: array
add_filter('wppizza_filter_order_details_formatted', 'my_custom_details_formatted', 10, 4); function my_custom_details_formatted($order_formatted, $order_ini, $customer_ini, $order_values){ /* preorder plugin slug */ $plugin_slug = 'wppizza_preorder'; /* order id */ $order_id = $order_values['id']; /* get preorder metavalue timestamp, and reformat from timestamp skip if 'asap' */ $preorder_meta_value = wppizza_get_order_meta( $order_id, $plugin_slug, true); if(!empty($preorder_meta_value) && $preorder_meta_value != 'asap'){ /* set desired format */ $custom_format = date('l, d M Y @ H|i|s', strtotime($preorder_meta_value)); /* alter output of preorder value in emails prints etc */ $order_formatted['sections']['customer'][$plugin_slug]['value'] = $custom_format; } return $order_formatted; }