LINUX.ORG.RU

Вопрос по wordpress/woocommerce

 , ,


0

1

Подскажите как правильно добавить в сабже продукт с помощью WC_Product_Variable/WC_Product_Variation. Имеется вот такой код:

#!/usr/bin/env php
<?php

require_once dirname(__FILE__)."/../wp-config.php";

function addProduct($product) {
    $product = new WC_Product_Variable();
    $product->set_name("KR. The C Programming Language");
    $product->set_description("Ultimate guide into C programming every programmer must read. Very comprehensive and easy to follow with lots of example code. Excellent tutorial!");
    $product->set_sku("1234567");
    $product->set_stock_status('instock');
    $product->set_stock_quantity(500);

    $attribute = new WC_Product_Attribute();
    $attribute->set_id(0);
    $attribute->set_name('size');
    $attribute->set_options(['XS', 'S', 'M']);
    $attribute->set_visible(true);
    $attribute->set_variation(true);

    $product->set_attributes([$attribute]);
    $product->save();

    $variation = new WC_Product_Variation();
    $variation->set_parent_id($product->get_id());
    $variation->set_attributes(['size' => 'XS']);
    $variation->set_sku("1234567-XS");
	$variation->set_status("private");
	$variation->set_stock_status('instock');
	$variation->set_stock_quantity(500);
    $variation->save();

    $variation = new WC_Product_Variation();
    $variation->set_parent_id($product->get_id());
    $variation->set_attributes(["size" => "S"]);
    $variation->set_sku("1234567-S");
	$variation->set_status("private");
	$variation->set_stock_status('instock');
	$variation->set_stock_quantity(500);
    $variation->save();

    $variation = new WC_Product_Variation();
    $variation->set_parent_id($product->get_id());
    $variation->set_attributes(["size" => "M"]);
    $variation->set_sku("1234567-M");
	$variation->set_status("private");
	$variation->set_stock_status('instock');
	$variation->set_stock_quantity(500);
    $variation->save();
}

addProduct(null);

Продукт добавляется но заказать его невозможно - на его странице пишется «This product is currently out of stock and unavailable.». Сравнивал все поля в админилке и вроде как всё так же как и в продукте импортированном из CSV файла. В БД смотрел но там какое то поле непонятно как создающееся типа «{a:0:s1:{s:6:...». Подозреваю тут какая то мелочь, может кто работает постоянно с wordpress/woocommerce и подскажет.


В БД смотрел но там какое то поле непонятно как создающееся типа «{a:0:s1:{s:6:...».

Превратить это в данные можно с помощью пхпшного unserialize.

//мимокрокодил

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

спасибо, очень помог. а я то думал что за фигня json не json.

посоветуйте кто знает как вообще разобраться в этой фигне. вот все говорят что OOP облегчает разбор кода да только по моему опыту всё красиво выглядит только в учебниках по OOP. вот свой код на PHP я бы без проблем разобрал. а тут открываешь класс а он наследует кучу методов непонятно откуда и десятки вложений и это просто как клубок ниток распутывать пока разгребёшься забудешь что хотел. а в учебниках по OOP да красиво расписано. что то почитать может конкретное?

iluha16
() автор топика
Ответ на: комментарий от iluha16

открываешь класс а он наследует кучу методов непонятно откуда и десятки вложений и это просто как клубок ниток распутывать пока разгребёшься забудешь что хотел.

Используй IDE, там ctrl+click и открывается метод или класс, по которому кликнул. Если читал учебники по ООП, то набивай практику. Wordpress и проекты схожие по объему и будут сложными и громоздкими, что тут поделаешь. Без ООП могло бы быть куда хуже. Может помочь документация по вордпрессу.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

я даже не понимаю как этот продукт отредактировать через их web ui админку. вроде всё точно так же как для другого продукта а заказать этот нельзя. ненравится мне эта система вобще, говнокод какой то. а ооп всё усложняет это факт по крайней мере тот который тут.

iluha16
() автор топика

Очень странные вещи происходят. Как такое вообще возможно???

ilya@www /var/www/localhost/htdocs/dev/wordpress $ grep class wp-content/plugins/woocommerce/includes/import/class-wc-product-csv-importer.php 
if ( ! class_exists( 'WC_Product_Importer', false ) ) {
class WC_Product_CSV_Importer extends WC_Product_Importer {
	 * Parse a shipping class field from a CSV.
	public function parse_shipping_class_field( $value ) {
		$term = get_term_by( 'name', $value, 'product_shipping_class' );
			$term = (object) wp_insert_term( $value, 'product_shipping_class' );
			'shipping_class_id' => array( $this, 'parse_shipping_class_field' ),
ilya@www /var/www/localhost/htdocs/dev/wordpress $ php -a
Interactive shell

php > require_once 'wp-content/plugins/woocommerce/includes/import/class-wc-product-csv-importer.php';
php > $x = new WC_Product_CSV_Importer('head.csv');
PHP Warning:  Uncaught Error: Class 'WC_Product_CSV_Importer' not found in php shell code:1
Stack trace:
#0 {main}
  thrown in php shell code on line 1

Warning: Uncaught Error: Class 'WC_Product_CSV_Importer' not found in php shell code:1
Stack trace:
#0 {main}
  thrown in php shell code on line 1
php > 

grep показывает что класс существует в файле. файл вкладывается без ошибок. и вдруг class not found. это вобще как????

iluha16
() автор топика
Ответ на: комментарий от iluha16

там if (...) exit. но вобще уже все мозги изтрахали мне эти десятки мегабайт говнокода. я бы на чистом пыхе такой сайт в мегабайт уместил и работал бы он в миллион раз быстрее. ну и гамно бесит уже.

iluha16
() автор топика
3 июня 2020 г.
Ответ на: комментарий от crutch_master

https://web.archive.org/web/20190913133622/https://habr.com/ru/post/467331/

Часто говорят, что при большой количестве товаров (страниц) WordPress начинает работать медленно. Это не так. Проверено моим опытом. Вообще отвлекусь, в моей компании около 10 программистов .NET, мы делаем и крупные порталы и приложения, но мы сами очень активно используем WordPress для проектов, где можно им обойтись, хотя никто не знает PHP. Причина? Из коробки можно сделать очень многое, да, это будет не так «кошерно», как если бы поработал дизайнер, специалист по UI, верстальщик и т.п. — но вы сами то верите, что можно сделать Интернет- магазин который уже работает (!) и приносит прибыль за 269$ “с нуля” без готовых компонентов? Я не верю, т.к. знаю сколько стоит разработка. Если уж WordPress “из коробки” вам станет мал, то поверьте, есть большое количество спецов, которые докрутят вам плагины + тему под ваши нужды.

anonymous
()
Ответ на: комментарий от anonymous

Очень авторитетное и агрументированное мнение чувака, который, хочет, чтобы что-то там приняли на веру. У ВП под капотом одна таблица в 1нф для всего. Он не может работать нормально by design. И никакие мантры «спецов» это изменить не в состоянии. Теоретически можно подпереть как-то костылями, но зачем?

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Теоретически можно подпереть как-то костылями, но зачем?

Чтобы сэкономить время на использовании уже готового для слабонагруженного сайтега компании или индивидуала, особенно с учетом того, что почти все аддоны общей стоимостью на 35 тысяч долларов легально доступны для скачивания:

https://wpcrack.in/

А когда появятся свои собственные лишние $35K, то можно попросить дотнет Васяна прикрутить почти бесплатный nopCommerce к Orchard или Piranha CMS, все они работают под Linux на самом современном фреймворке DotNet Core на данный момент v3.1, там и производительность и безопасность и корректность и многое другое.

anonymous
()
Ответ на: комментарий от anonymous

Чтобы сэкономить время

Костыли не экономят время, это заблуждение. «Сэкономленная» неделя вывалится потом в годы геморроя.

А когда появятся свои собственные лишние $35K

То можно будет всё это написать хоть с нуля на жабке.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Костыли не экономят время, это заблуждение. «Сэкономленная» неделя вывалится потом в годы геморроя.

Как это может проявиться в случае приема небольших платежей в крипте за кастом кодинг? Подмена платежного адреса?

А когда появятся свои собственные лишние $35K То можно будет всё это написать хоть с нуля на жабке.

При средней стоимости хорошего жабера около $50/h, $35K - это всего 700 часов, т.е. примерно всего полгода работы одного жаба кодера. Сколько десятков человеколет уже потрачено на nopCommerce? Что-то есть более секурное и производительное, чем nopCommerce даже без учета цены?

anonymous
()
Ответ на: комментарий от anonymous

Сколько десятков человеколет уже потрачено на nopCommerce?

Вопрос на что они там потрачены. Много - не значит хорошо. Кто-то десятки тысяч человеколет тратит на вордпресс, но лучше он работать от этого не стал.

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

Как это может проявиться в случае приема небольших платежей в крипте за кастом кодинг?

Для твоего лендинга на 3.5 человек, очевидно, никак.

crutch_master ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.