クラス
OrderEditPage
ソース ソース
ファイル: src/Admin/Pages/OrderEditPage.php
class OrderEditPage { /** * Registers hooks * * @author Evan D Shaw <evandanielshaw@gmail.com> * @return void */ public static function init() { add_filter('usces_filter_admin_cart_item_name', [get_class(), 'filterOrderCartItemName'], 10, 2); } /** * Adds group items HTML under the cart item name on the admin order edit page * * @author Evan D Shaw <evandanielshaw@gmail.com> * @param string $cartItemName * @param array $args * @return string */ public static function filterOrderCartItemName($cartItemName, $args) { if (empty($args['cart_row'])) { return $cartItemName; } $data = CartPages::getComboSetCart($args['cart_row']); if (empty($data)) { return $cartItemName; } Cart::loadCss(); return $cartItemName . self::getComboSetCartDetailsWithEditableOptions($data['cartRows']); } /** * Builds HTML for a combo-set order cart item * * @author Evan D Shaw <evandanielshaw@gmail.com> * @param array $rows group items cart * @return string */ public static function getComboSetCartDetailsWithEditableOptions($rows) { $groupshtml = '<div class="wcexics combo-set-cart">'; foreach ($rows as $row) { $groupshtml .= '<div class="combo-set-cart__group-label">' . $row['groupLabel'] . '</div>'; foreach ($row['groupItems'] as $item) { $hookargs = [ 'item' => $item, 'row' => $row, 'rows' => $rows, ]; $groupshtml .= '<div class="combo-set-cart__group-item">'; $groupshtml .= '<ul>'; $groupshtml .= '<li>'; $groupshtml .= apply_filters( 'wcexics_filter_cart_details_html_item_name', '<div>' . $item['name'] . '</div>', $hookargs ); $groupshtml .= '</li>'; $groupshtml .= '</ul>'; $groupshtml .= '</div>'; $options = wcexics_api_get_group_item_ordercart_meta('option', $item['ordercart']['cart_id']); if (!empty($options)) { $groupshtml .= '<div class="combo-set-cart__group-item-editable-opts">'; ob_start(); usces_make_option_field( [ 'post_id' => $item['ordercart']['post_id'], 'options' => $options, ], $item['ordercart']['cart_id'] ); $optfields = (string)ob_get_clean(); $optfields = preg_replace('/itemOption\[/', 'wcexicsGroupItemOption[', $optfields); $groupshtml .= $optfields; $groupshtml .= '</div>'; } } } $groupshtml .= '</div>'; return $groupshtml; } }
- filterOrderCartItemName — Adds group items HTML under the cart item name on the admin order edit page
- getComboSetCartDetailsWithEditableOptions — Builds HTML for a combo-set order cart item
- init — Registers hooks