/** * Возвращает преобразованную форму корзины, добавляя в нее кнопки и возможность изменения * @return strign HTML код формы заказа */ public function getBasketHTML() { // Начало вывода $output = $this->basket->getHTML(); $output = '<form class="basketForm" action="' . $this->basketURL . '" method="post">' . '<input type="hidden" name="' . SIMPLE_BASKET_MODE . '" value="' . SIMPLE_BASKET_UPDATE . '" />' . preg_replace(array('/<td class="quo" data-value="([0-9]+)" data-id="([0-9]+)">[0-9]+/'), array('<td class="quo"><input type="text" name="' . SIMPLE_BASKET_UPDATE . '_\\2" value="\\1" />'), $output) . '<div class="buttons"><button class="update" type="submit">' . __('Update', 'simple_basket') . '</button></div>' . '</form>'; return $output; }
public function add() { $this->validateNonce(); if (!isset($_REQUEST['id'])) { die('ID not specified'); } // Код товара $id = (int) $_REQUEST['id']; $product = get_post($id); $title = $product->post_title; // Цена $price = simple_basket_custom_fields($id, get_option('simple_basket_catalog_price')); // Вычисляем категорию по таксономии $category = ''; // Тип записи каталога товара $postType = $product->post_type; // Таксономии записи $taxonomies = get_object_taxonomies($postType); // Ищем таксономию, которая не тег foreach ($taxonomies as $taxonomy) { if (strpos($taxonomy, 'tag') !== FALSE) { continue; } // Берем элементы этой таксономии $categories = get_the_terms($id, $taxonomy); $category = count($categories) > 0 ? $categories[0]->name : ''; // Следующие таксономии не рассматриваем break; } // Добавляем в корзину if (!empty($title)) { $this->basket->add($id, $title, $price, $category); } $this->responce($this->basket); }
/** * Возвращает экземпляр класса * @static * @return SimpleBasketOrder */ public static function create() { if (!self::$instance) { self::$instance = new SimpleBasketOrder(); } return self::$instance; }