protected static function get_inventory_item($inventory_id) { $item = new WPIMItem(); return $item->get($inventory_id); }
function wpinventory_reserve_form($args = NULL) { if (!(int) wpinventory_get_config('reserve_allow')) { return '<!-- Reserve form disabled in admin dashboard -->'; } $args = wpinventory_get_reserve_config($args); $error = ''; $message = ''; $display = TRUE; if (isset($_POST['wpinventory_reserve_submit'])) { $data = array(); foreach ($args as $field => $required) { if (stripos($field, 'display_') === 0) { $field = str_replace('display_', '', $field); if ($field) { $data[$field] = array('value' => WPIMCore::request('wpinventory_reserve_' . $field), 'label' => $args[$field . '_label']); if (stripos($field, 'quantity') !== FALSE) { $data[$field]['value'] = (int) $data[$field]['value']; if ($data[$field]['value'] < 0) { $data[$field]['value'] = 0; } } if (!trim($data[$field]['value']) && $required === 2) { $error .= $args[$field . '_label'] . ' ' . WPIMCore::__('is required.') . '<br />'; } } } } if (!$error && (int) wpinventory_get_config('reserve_decrement')) { $wpim_item = new WPIMItem(); $item = $wpim_item->get($args['inventory_id']); if ($item) { $on_hand = $item->inventory_quantity; if ($data['quantity']['value'] > $on_hand) { $error = WPIMCore::__('There are not enough of this item to reserve') . ' ' . $data['quantity']['value'] . '<br>'; } } } if (!$error) { $data['inventory_id'] = $args['inventory_id']; $success = wpinventory_process_reserve($data); if ($success === TRUE) { $display = FALSE; $message = WPIMCore::__('Thank you. Your reservation has been submitted.'); } else { $error = $success; } } } $args['error'] = $error; if ($display) { return wpinventory_get_template_part('reserve-form', '', FALSE, $args); } elseif ($message) { return '<a id="wpim_reserve" name="wpim_reserve"></a><div class="wpinventory_message">' . $message . '</div>'; } }