wppizza / markup / order / itemised.php
Itemised order details in cart(s), pages, users purchase history and order related widgets
CSS Targeting
-
Wrapper table element class:
.wppizza-order-itemised
if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions. Please refer to Modify Styles/Layout
Structure
Note: headers, rows and columns may be dynamically added or removed, depending on plugin settings. Generally however the structure is as follows. Use your browsers element inspector to determine assigned classes and id’s.
<table class="wppizza-order-itemised"> <thead> (by default thead is not visible in cart) <tr> /* header column labels as set in WPPizza -> Localization */ <th> quantity </th> <th> article </th> <th> price </th> (not displayed in cart) <th> taxrate </th> (only if multiple taxrates apply, but not in cart) <th> total </th> </tr> </thead> <tbody> /* category - if displayed/enabled */ <tr> <td colspan="5"> category name </td> (colspan dynamic) </tr> /* item details - one row per item */ <tr> <td> article quantity </td> <td> article name </td> <td> article single price </td> (not displayed in cart) <td> article taxrate </td> (only if multiple taxrates apply, but not in cart) <td> article total </td> </tr> </tbody> </table>
Filters available
apply filters by adding them to your child-theme’s functions.php (notes regarding functions.php)
-
filter name:
wppizza_filter_order_item_header_markup
purpose: modify columns within thead@param: $markup array (array of thead columns)
@param: $txt array (array of localization strings in WPPizza -> Localization)
@param: $type str (identifier for page(s) or cart )
@param: $items array (array of items of order)
@return: arrayexamples:
/* important: in the cart widget, only the most basic header columns (keys) are being used/allowed by default if you want to add an additional array/key (using the wppizza_array_splice helper for example) instead of appending/prepending it to one of the existing ones you must set a filter priority of 100 or higher ! */ add_filter('wppizza_filter_order_item_header_markup', 'prefix_filter_order_item_header_markup', 10, 4); function prefix_filter_order_item_header_markup($markup, $txt, $type, $items){ /* notes: use print_r($markup) to view thead columns array keys with their respective markup use print_r($txt) to view array of localization strings use print_r($type) to get string that gets the caller page/cart use print_r($items) to view array of order items use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin */ /* example: adding additional column header AFTER quantity using standard php concatenation */ $markup['thead_th_quantity'] .= '<th class="some_class">some header text</th>'; /* example: adding additional column header BEFORE quantity using standard php concatenation */ $markup['thead_th_quantity'] = '<th class="some_class">some header text</th>' . $markup['thead_th_quantity']; /* example: adding additional column header AFTER quantity using wppizza array_splice helper function */ $splice_after['myprefix_column'] = '<th class="some_class">some header text</th>'; $markup = wppizza_array_splice($markup, $splice_after, 'thead_th_quantity' ); /* example: adding additional column header BEFORE quantity using wppizza array_splice helper function */ $splice_before['myprefix_column'] = '<th class="some_class">some header text</th>'; $markup = wppizza_array_splice($markup, $splice_before, 'thead_th_quantity' , true); /* example: adding additional column header as 3rd header column (zero-indexed) */ $splice_numeric['myprefix_column'] = '<th class="some_class">some header text</th>'; $markup = wppizza_array_splice($markup, $splice_numeric, 2 ); /* example: removing quantity header */ unset($markup['thead_th_quantity']); return $markup; }
-
filter name:
wppizza_filter_order_items_markup
purpose: modify array of itemised order before it is being processed for display@param: $markup array (array of markup elements)
@return: arrayexamples:
add_filter('wppizza_filter_order_items_markup', 'prefix_filter_order_items_markup'); function prefix_filter_order_items_markup($items){ /* notes: use print_r($items) to view order items array use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin */ /* example: adding an additional key to each item */ foreach($items as $key => $item){ $items[$key]['my_key'] = 'some value'; } return $items; }
-
filter name:
wppizza_filter_order_item_columns
purpose: modify columns (td’s) for each itemised item@param: $markup array (array of menu_item_columns elements)
@param: $key str (key of item)
@param: $item array (array of item parameters for this item)
@param: $items array (array of item parameters for ALL items)
@param: $item_count int (number of items)
@param: $order_id int (order id as set in db – if known)
@param: $txt array (array of strings as set in WPPizza -> Localization)
@param: $type str (identifier for page(s) or cart )@return: array
examples:
/* important: in the cart widget, only the most basic columns (keys) are being used/allowed by default if you want to add an additional array/key (using the wppizza_array_splice helper for example) instead of appending/prepending it to one of the existing ones you must set a filter priority of 100 or higher ! */ add_filter('wppizza_filter_order_item_columns', 'prefix_filter_order_item_columns', 10, 8); function prefix_filter_order_item_columns($markup, $key , $item, $items, $item_count, $order_id, $txt, $type){ /* example: adding additional column AFTER quantity using standard php concatenation */ $markup['item_td_quantity'] .= '<td class="some_class">some text</td>'; /* example: adding additional column BEFORE quantity using standard php concatenation */ $markup['item_td_quantity'] = '<td class="some_class">some text</td>' . $markup['item_td_quantity']; /* example: adding additional column AFTER quantity using wppizza array_splice helper function */ $splice_after['myprefix_column'] = '<td class="some_class">some text</td>'; $markup = wppizza_array_splice($markup, $splice_after, 'item_td_quantity' ); /* example: adding additional column BEFORE quantity using wppizza array_splice helper function */ $splice_before['myprefix_column'] = '<td class="some_class">some text</td>'; $markup = wppizza_array_splice($markup, $splice_before, 'item_td_quantity' , true); /* example: adding additional column as 3rd column (zero-indexed) */ $splice_numeric['myprefix_column'] = '<td class="some_class">some text</td>'; $markup = wppizza_array_splice($markup, $splice_numeric, 2 ); /* example: removing quantity column */ unset($markup['item_td_quantity']); return $markup; }
-
filter name:
wppizza_filter_order_item_markup
purpose: modify row(s) for each itemised item@param: $markup array (array of menu_item row (tr + columns) elements)
@param: $key str (key of item)
@param: $item array (array of item parameters for this item)
@param: $items array (array of item parameters for ALL items)
@param: $colspan int (how many columns are used)
@param: $item_count int (number of items)
@param: $order_id int (order id as set in db – if known)
@param: $txt array (array of strings as set in WPPizza -> Localization)
@param: $type str (identifier for page(s) or cart )@return: array
examples:
add_filter('wppizza_filter_order_item_markup', 'prefix_filter_order_item_markup', 10, 9); function prefix_filter_order_item_markup($markup, $key , $item, $items, $colspan, $item_count, $order_id, $txt, $type){ /* example: adding additional - full width - row after menu item with id 400 */ if($item['post_id'] == 400){ $markup['new_row_'.$item['post_id'].'] = '<tr><td colspan="'.$colspan.'">some text</td></tr>'; } return $markup; }
-
filter name:
wppizza_filter_order_itemised_markup
purpose: modify array of itemised order before it is being processed for display@param: $markup array (array of markup elements)
@param: $blog_id int (id of blog)
@param: $order_id int (order id as set in db – if known)
@param: $items array (array of item parameters of ALL items)
@param: $txt array (array of strings as set in WPPizza -> Localization)
@param: $colspan int (number of columns)
@param: $type str (identifier for page(s) or cart )@return: array
examples:
add_filter('wppizza_filter_order_itemised_markup', 'prefix_filter_order_itemised_markup', 10, 7); function prefix_filter_order_itemised_markup($markup, $blog_id , $order_id, $items, $txt, $colspan, $type){ /* notes: use print_r($markup) to view markup array keys with their respective markup use print_r($blog_id) to get blog_id use print_r($order_id) to get order id use print_r($items) to view array of items in cart use print_r($txt) to view array of localization strings use print_r($colspan) to get number of columns use print_r($type) to get string that gets the caller page/cart use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin */ /* example: adding a paragraph AFTER table element using standard php concatenation */ $markup['_table'] .= '<p>more text after div</p>'; /* example: adding a paragraph BEFORE table element using standard php concatenation */ $markup['table_'] = '<p>more text before div</p>' . $markup['table_']; /* example: adding a tfoot AFTER thead element using wppizza array_splice helper function */ $splice_after['myprefix_foot_'] = '<tfoot>'; $splice_after['myprefix_foot_tr_'] = '<tr>'; $splice_after['myprefix_foot_td_'] = '<td colspan="'.$colspan.'">'; $splice_after['myprefix_foot_text'] = 'some text'; $splice_after['_myprefix_foot_td'] = '</td>'; $splice_after['_myprefix_foot_tr'] = '</tr>'; $splice_after['_myprefix_foot'] = '</tfoot>'; $markup = wppizza_array_splice($markup, $splice_after, '_thead' ); /* example: adding a tfoot BEFORE tbody element using wppizza array_splice helper function */ $splice_before['myprefix_foot_'] = '<tfoot>'; $splice_before['myprefix_foot_tr_'] = '<tr>'; $splice_before['myprefix_foot_td_'] = '<td colspan="'.$colspan.'">'; $splice_before['myprefix_foot_text'] = 'some text'; $splice_before['_myprefix_foot_td'] = '</td>'; $splice_before['_myprefix_foot_tr'] = '</tr>'; $splice_before['_myprefix_foot'] = '</tfoot>'; $markup = wppizza_array_splice($markup, $splice_before, 'tbody_', true ); /* example: using actions of another plugin that by default outputs html to add it after the table */ ob_start(); # start buffering do_action('other_plugin_output'); # run action of other plugin that outputs things $buffer= ob_get_contents(); # capture buffer in variable ob_end_clean(); # clean buffer $markup['_table'] = $markup['_table'] . $buffer; # add buffered output after table return $markup; }
Actions available
- none
Editing files directly
ensure you have also read the Modify/Edit Templates
basepath: [plugin-path]/wppizza/templates/markup
filepath: [plugin-path]/wppizza/templates/markup/order/itemised.php
Modules used in file
- none
Module used by template file(s)
- [basepath]/cart/cart.container.php
- [basepath]/pages/page.order.php
- [basepath]/pages/page.confirm-order.php
- [basepath]/pages/page.thankyou.php
- [basepath]/pages/page.purchase-history.php
- also used to fill minicart dynamically if “view order” has been enabled