クラス
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