Задать вопрос
websafer
@websafer
web-developer

Как добавить изображение в корзину на Wordpress (без плагинов)?

Прошу помочь добавить изображение в корзину в Wordpress методом POST. Возможно я "изобретаю велосипед", но все-таки принципиально хочу решить данную задачу

На каждой странице изображение извлекается из поста через ID самого поста:

<?php
                session_start();
                    // Получим ID вложения поста
                    //$id = the_id();
                    $attachment_image = get_children( array(
                    	//'numberposts' => 3,
                    	'post_mime_type' => 'image',
                    	'post_parent' => $id,
                    	'post_type' => 'attachment'
                    ) );
                    // вынимаем первую картинку из массива
                    $attachment_image = array_shift($attachment_image);
                    $img = '<img src="'.wp_get_attachment_url( $attachment_image->ID).'" height="" width="150" alt=""/>';
                    $_SESSION['img'] = $img;
?>


Далее, на этой же странице, отправляем его в обработку в файл cart.php:

<form method="post" class="addtocart" action=".../cart.php">
                    Цена товара: <?=$_SESSION['price']." за 1 единицу"?><br/>
                    Изображение: <label for="picture"><?=$_SESSION['img']?></label>
                    Наименование: <input name="item" type="text" size="14"/><br/>
                    Кол-во товара: <input name="count" type="text" size="14"/><br/>
                    Добавить товар: <button type="submit" value="Добавить">Add</button>
</form>


В этом же файле (cart.php) выводим полученные данные. Все выводится, кроме миниатюры изображения.

<?PHP
        session_start();
        // Название товара
        $_SESSION['item'] = $_POST['item'];
        // Кол-во товара
        $_SESSION['count'] = $_POST['count'];
        // Цена товара
        $_SESSION['price'] = 100;
        // 
        $_SESSION['img'] = $_POST['picture'];

    
        // if(isset($_SESSION['item']) and is_numeric($_SESSION['count'])){
            echo $_SESSION['item']."<br/>";
            echo "Вы добавили товар в карзину!<br/>";
            echo "Его кол-во ".$_SESSION['count']."<br/>";
            echo "Вы должны заплатить: ".$_SESSION['count'] * $_SESSION['price']." рублей";
            echo $_SESSION['img'];
        // }
?>


Заранее благодарю за помощь
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@weart
Для начала сделайте по-человечески - передавайте id картинки, и в корзине уже получайте ее url по id.
Ну и проверяйте, какие у вас данные передаются, возможно, их просто нет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
websafer
@websafer Автор вопроса
web-developer
Согласен, все переделал. Получил результат

Отправка в корзину:

<?php
session_start();
$_SESSION['id'] = $id;
?>

<form name="addtocart" id="addtocart" class="addtocart" method="post">
<input type="hidden" name="id" value="<?=the_id()?>"/>
<button type="submit" value="Добавить" class="img_bottom order" id="order"><p>Добавить<br>в избранное</p></button>
</form>


Вывод в модальном окне:

<?php
            session_start();
            $_SESSION['id'] = $_POST['id']; // ID image
            $id = $_POST['id'];
            echo "Изображение добавлено!<br/><br/>";

    	    // Получим ID вложения поста 5
            $id = $_POST['id'];
            $attachment_image = get_children( array(
            	'numberposts' => 3,
            	'post_mime_type' => 'image',
            	'post_parent' => $id,
            	'post_type' => 'attachment'
            ) );
            // вынимаем первую картинку из массива
            $attachment_image = array_shift($attachment_image);
            $img = '<img src="' . wp_get_attachment_url( $attachment_image->ID).'" height="" width="150" alt=""/>';
            echo $img;
	    ?>


Теперь осталось разобраться, как добавлять несколько изображений. Сейчас добавляется одно и оно обновляется при добавлении нового.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы