示例#1
0
 private static function save_settings()
 {
     $settings = self::getOptions();
     $placeholder_image = self::request('placeholder_image');
     if ($placeholder_image) {
         $item = new WPIMItem();
         // Images can be id's as well...
         if (!is_numeric($placeholder_image)) {
             // Get the attachment id
             $post_id = $item->get_attachment_id_from_url($placeholder_image);
         } else {
             $post_id = (int) $placeholder_image;
             $placeholder_image = wp_get_attachment_url($post_id);
         }
         // Now - get large size, medium, plus thumbnail
         $sizes = $item->get_image_urls($post_id);
         $sizes['full'] = $placeholder_image;
         $_POST['placeholder_image'] = json_encode($sizes);
     } else {
         $_POST['placeholder_image'] = '';
     }
     foreach ($settings as $field => $value) {
         if (isset($_POST[$field])) {
             self::updateOption($field, $_POST[$field]);
         }
     }
     self::update_reg_key($_POST);
     if (self::request("rebuild_thumbnails")) {
         self::rebuild_thumbnails();
     }
     do_action('wpim_save_settings');
     return TRUE;
 }
示例#2
0
function wpinventory_process_reserve($data)
{
    $to_email = wpinventory_get_config('reserve_email');
    if (!$to_email) {
        $to_email = get_option('admin_email');
    }
    $subject = WPIMCore::__('An item has been reserved from') . ' ' . get_bloginfo('site_name');
    $message = '';
    $fields = array('inventory_number', 'inventory_serial', 'inventory_name');
    $fields = apply_filters('wpim_reserve_item_fields', $fields);
    $item_title = WPIMCore::__('Item Details');
    $item_title = apply_filters('wpim_reserve_title_item_details', $item_title);
    $message .= PHP_EOL . $item_title;
    $inventory_display = wpinventory_get_display_settings('detail');
    if (!empty($data['inventory_id'])) {
        $loop = new WPIMLoop(array('inventory_id' => $data['inventory_id']));
        while ($loop->have_items()) {
            $loop->the_item();
            foreach ($inventory_display as $field) {
                $message .= PHP_EOL . $loop->get_label($field) . ': ' . $loop->get_field($field);
            }
        }
    }
    $reservation_title = WPIMCore::__('Reservation Details');
    $reservation_title = apply_filters('wpim_reserve_title_reservation_details', $reservation_title);
    $message .= PHP_EOL . PHP_EOL . $reservation_title;
    $exclude = array('inventory_id');
    $exclude = apply_filters('wpim_reserve_exclude_form_fields', $exclude);
    $args = wpinventory_get_reserve_config();
    foreach ($data as $field => $d) {
        if (!in_array($field, $exclude) && $args['display_' . $field]) {
            $message .= PHP_EOL . $d['label'] . ': ' . $d['value'];
        }
    }
    $subject = apply_filters('wpim_reserve_email_subject', $subject);
    $message = apply_filters('wpim_reserve_email_message', $message);
    $status = FALSE;
    $test_mode = FALSE;
    if ($test_mode) {
        echo '<br>== E-Mail output (in test mode) ==<br>';
        echo '<pre>';
        echo 'To: ' . $to_email . PHP_EOL;
        echo 'Subject: ' . $subject . PHP_EOL;
        echo 'Message:' . PHP_EOL;
        echo $message;
        echo '</pre>';
    }
    $success = wp_mail($to_email, $subject, $message);
    if (!$success) {
        return WPIMCore::__('There was an issue sending your e-mail.  Please try again later.');
    } else {
        if (wpinventory_get_config('reserve_decrement')) {
            $wpim_item = new WPIMItem();
            $wpim_item->save_reserve($data['inventory_id'], $data['quantity']['value']);
            do_action('wpim_reserve_sent', $data['inventory_id'], $data, $subject, $message);
            $status = TRUE;
        }
    }
    $send_confirmation = wpinventory_get_config('reserve_confirmation');
    if ($send_confirmation) {
        // Grab e-mail from the form
        $confirm_email = $data['email']['value'];
        // If the user is logged in, use that e-mail
        if (is_user_logged_in()) {
            $current_user = wp_get_current_user();
            $confirm_email = $current_user->user_email;
        }
        $subject = apply_filters('wpim_reserve_confirmation_email_subject', $subject);
        $message = apply_filters('wpim_reserve_confirmation_email_message', $message);
        if ($test_mode) {
            echo '<br>== E-Mail Confirmation output (in test mode) ==<br>';
            echo '<pre>';
            echo 'To: ' . $confirm_email . PHP_EOL;
            echo 'Subject: ' . $subject . PHP_EOL;
            echo 'Message:' . PHP_EOL;
            echo $message;
            echo '</pre>';
        }
        $success = wp_mail($confirm_email, $subject, $message);
        if (!$success) {
            return WPIMCore::__('There was an issue sending the confirmation e-mail.  Please try again later.');
        } else {
            do_action('wpim_reserve_confirmation_sent', $data['inventory_id'], $data, $subject, $message);
            $status = TRUE;
        }
    }
    return $status;
}
示例#3
0
 protected static function get_inventory_item($inventory_id)
 {
     $item = new WPIMItem();
     return $item->get($inventory_id);
 }
示例#4
0
 /**
  * Delete an inventory item
  * @param integer $inventory_id
  */
 function delete($inventory_id)
 {
     // Remove item
     $success = $this->wpdb->query($this->wpdb->prepare("DELETE FROM " . $this->inventory_table . ' WHERE inventory_id = %d', $inventory_id . ' LIMIT 1'));
     if ($success) {
         $images_success = $this->delete_images($inventory_id);
         $media_success = $this->delete_media($inventory_id);
         if (!$images_success) {
             self::$message = $this->__('Inventory item deleted, but the images could not be deleted.') . '<br />';
         }
         if (!$media_success) {
             self::$message = $this->__('Inventory item deleted, but the media could not be deleted.') . '<br />';
         }
     } else {
         if ($success === 0) {
             self::$message = $this->__('The inventory item is already deleted.');
         } else {
             self::$message = $this->__('Inventory item could not be deleted.');
         }
     }
     return $success;
 }