<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>E-commerce &#8212; Nikita Spivak</title>
	<atom:link href="https://nikita-sp.com.ua/tag/e-commerce/feed" rel="self" type="application/rss+xml" />
	<link>https://nikita-sp.com.ua</link>
	<description>web developer&#039;s portfolio</description>
	<lastBuildDate>Fri, 11 Sep 2015 13:48:05 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Удаление/Изменение параметров html-тегов (Элементов) при помощи JavaScript</title>
		<link>https://nikita-sp.com.ua/2011/09/udalenieizmenenie-parametrov-html-tegov.html</link>
					<comments>https://nikita-sp.com.ua/2011/09/udalenieizmenenie-parametrov-html-tegov.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Sun, 04 Sep 2011 22:42:32 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=369</guid>

					<description><![CDATA[Доброе время суток, Уважаемые Читатели! Долго не писал в свой блог, ибо ничего интересного, не было. И вот появилось! Итак, ближе к теме. При разработке очередного проекта понадобилось изменить параметры некоторых html элементов. В связи с отсутствием доступа к исходному коду функции, которая выводила необходимую информацию, пришлось работать с JavaScript. Задача Генерируется меню категорий интернет-магазина [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Доброе время суток, Уважаемые Читатели!</p>
<p>Долго не писал в свой блог, ибо ничего интересного, не было.<br />
И вот появилось! Итак, ближе к теме.</p>
<p>При разработке очередного проекта понадобилось изменить параметры некоторых html элементов. В связи с отсутствием доступа к исходному коду функции, которая выводила необходимую информацию, пришлось работать с JavaScript.</p>
<p><strong>Задача</strong><br />
Генерируется меню категорий интернет-магазина на WP E-Commerce, и в соответствии с иерархией категорий необходимо было реализовать раскрывающееся меню.</p>
<p><span style="text-decoration: underline;">Для этого необходимо было</span>:</p>
<ul>
<li>Добавить необходимый параметр в определенные html элементы (&#171;li&#187;)</li>
<li>Удалить необходимый параметр из определенного html элемента (&#171;href&#187;)</li>
<li>Скрыть необходимые категории, которые являлись вложенными</li>
</ul>
<p><span id="more-369"></span></p>
<p><strong>Решение:</strong><br />
Для начала, в файле вывода меню <em>wpsc-category_widget.php</em> (wp-content/plugins/wp-e-commerce/wpsc-theme/) я реализовал вывод категорий таким образом, чтобы у каждого элемента, с которым я бы работал был уникальный id.</p>
<p>Реализация такая (25-60 строки файла <em>wpsc-category_widget.php</em> ):</p>
<pre class="brush: php; title: Код:; notranslate">&lt;?php else : ?&gt;
&lt;div id=&quot;categorisation_group_&lt;?php echo $category_id; ?&gt;
&quot; class=&quot;wpsc_categorisation_group&quot;&gt;
&lt;ul class=&quot;wpsc_categories wpsc_top_level_categories&quot;&gt;
	&lt;li id=&quot;nikshack-&lt;?php echo $curr_cat['term_id']; ?&gt;&quot; class=&quot;wpsc_category_&lt;?php echo $curr_cat['term_id']; wpsc_print_category_classes($curr_cat); ?&gt;&quot; style=&quot;color: #4f647f; cursor: pointer;&quot;&gt;
&lt;?php if(! ($category_image == WPSC_CATEGORY_URL) ){ ?&gt;

&lt;?php } ?&gt;

&lt;?php echo esc_html( $curr_cat['name'] ); ?&gt;
&lt;ul class=&quot;wpsc_categories wpsc_second_level_categories&quot;&gt;
&lt;ul class=&quot;wpsc_categories wpsc_second_level_categories&quot;&gt;
	&lt;li id=&quot;nikshack-&lt;?php wpsc_print_category_id();?&gt;&quot; class=&quot;wpsc_category_&lt;?php wpsc_print_category_id(); wpsc_print_category_classes_section();?&gt;&quot;&gt;
&lt;a id=&quot;nikshack-l&lt;?php wpsc_print_category_id();?&gt;&quot; class=&quot;wpsc_category_link&quot; href=&quot;&lt;?php wpsc_print_category_url(); ?&gt;&quot;&gt;

&lt;?php wpsc_print_category_name(); ?&gt;

&lt;?php if ( 1 == get_option( 'show_category_count') ) wpsc_print_category_products_count( &quot;(&quot;,&quot;)&quot; ); ?&gt;

&lt;/a&gt;

&lt;?php wpsc_print_subcategory( '&lt;br ?&gt;
&lt;ul class=&quot;third&quot; style=&quot;display: none;&quot;&gt;', '&lt;/ul&gt;
' ); ?&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</pre>
<p>После этого посмотрел какие категории находятся в какой иерархии, открыв страницу и посмотрев исходный код.<br />
И после этого написал <strong>Javascript для удаления параметров href для ссылок</strong> и <strong>добавление параметров onclick для элементов списка li</strong>.</p>
<p>Код получился не громоздким и не очень сложным, хотя новичкам пригодится.</p>
<p>JavaScript:</p>
<pre class="brush: jscript; title: Код:; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
$(document).ready(function() {
 document.getElementById('nikshack-4').setAttribute(&quot;onclick&quot;, &quot;$(this).children().show();&quot;);
 document.getElementById('nikshack-5').setAttribute(&quot;onclick&quot;, &quot;$(this).children().show();&quot;);
 document.getElementById('nikshack-9').setAttribute(&quot;onclick&quot;, &quot;$(this).children().show();&quot;);
 document.getElementById('nikshack-14').setAttribute(&quot;onclick&quot;, &quot;$(this).children().show();&quot;);
 document.getElementById('nikshack-15').setAttribute(&quot;onclick&quot;, &quot;$(this).children().show();&quot;);

 document.getElementById('nikshack-l14').removeAttribute(&quot;href&quot;);
 document.getElementById('nikshack-l15').removeAttribute(&quot;href&quot;);

 document.getElementById('second-4').style.display = &quot;none&quot;;
 document.getElementById('second-5').style.display = &quot;none&quot;;
 document.getElementById('second-9').style.display = &quot;none&quot;;

 });
// ]]&gt;&lt;/script&gt;</pre>
<p>Первые пять строк добавляют функцию onclick для всех категорий, имеющих вложенные категории. Последующие две удаляют параметр href у тех категорий которые вложены и имеют еще вложенный список. Последние три строки &#8212; прячем все дочерние списки. К сожалению третьего уровня списки пока не решил как прятать через JS и просто вписал style=&#187;display:none;&#187; для них в исходнике.</p>
<p>Для чего я написал такую простую на первый взгляд статью?<br />
Все просто, шаблон виджета списка категорий для WP E-commerce имеет достаточно странную структуру.</p>
<p>Основные разделы 1-ого уровня вы можете редактировать как хотите. А вот со вторым уровнем по сложнее, ибо все изменения примененные ко второму уровню (например, попробуйте удалить для ссылок на категории второго уровня параметр href, и у вас у категорий третьего уровня так же пропадет этот параметр) будут применены к категориям третьего. Как я понял ссылки на категории третьего уровня генерируются по примеру (шаблону) категорий второго уровня.</p>
<p>Вроде все, спасибо за внимание! Пишите, если что-то не понятно, или нужна помощь.<br />
Понравилась статья? Поставь +1 <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2011/09/udalenieizmenenie-parametrov-html-tegov.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Кратная покупка товара WP E-commerce с выбором количества товаров</title>
		<link>https://nikita-sp.com.ua/2011/08/kratnaya-pokupka-tovara-wp-e-commerce-s-vyiborom-ko.html</link>
					<comments>https://nikita-sp.com.ua/2011/08/kratnaya-pokupka-tovara-wp-e-commerce-s-vyiborom-ko.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Tue, 16 Aug 2011 22:50:16 +0000</pubDate>
				<category><![CDATA[Плагины и модули]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[интернет магазин]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=358</guid>

					<description><![CDATA[Итак, в предыдущем посте (Кратная покупка товара WP E-commerce) мы рассмотрели достаточно простой способ реализации функции кратной покупки товара в интернет-магазине на основе WordPress и E-commerce. Сегодня, я расскажу, как можно предоставить пользователю выбрать количество товара из списка, который вы сами сформируете на основе своих потребностей или кол-ве продаваемого товара в упаковке. И мой пример [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Итак, в предыдущем посте (<a title="Кратная покупка товара WP E-commerce" href="http://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html" data-wpel-link="internal">Кратная покупка товара WP E-commerce</a>) мы рассмотрели достаточно простой способ реализации функции кратной покупки товара в интернет-магазине на основе WordPress и E-commerce.</p>
<p>Сегодня, я расскажу, как можно предоставить пользователю выбрать количество товара из списка, который вы сами сформируете на основе своих потребностей или кол-ве продаваемого товара в упаковке. И мой пример подразумевает разное количество товаров в упаковке для разных категорий товара. Это пригодится для людей, которые держат оптовые интернет-магазины.<span id="more-358"></span></p>
<p>Итак, приступим.</p>
<p>Для начала, выберем (если еще не выбрано) в настройках нашего магазина (<em>Параметры => Магазин => Презентация</em>) возле поля &#171;<strong><em>Добавить количество полей для каждого описания товара</em></strong>&#187; &#8212; &#171;Да&#187;.</p>
<p>После чего ищем следующие файлы:</p>
<ul>
<li><strong>wpsc-products_page.php</strong></li>
<li><strong>wpsc-single_product.php</strong></li>
</ul>
<p>в каталоге: <em>wp-content/plugins/wp-e-commerce/wpsc-theme/</em></p>
<p>После этого, как показано в предыдущей статье (<a title="Кратная покупка товара WP E-commerce" href="http://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html" data-wpel-link="internal">Кратная покупка товара WP E-commerce</a>) , добавляем вспомогательную переменную в эти файлы:</p>
<pre class="brush: php; title: Код:; notranslate">$var = wpsc_breadcrumb_url();</pre>
<p>И ищем в этих двух файлах функцию мульти-добавления в корзину. Найти ее можно легко по следующему условию:</p>
<pre class="brush: php; title: Код:; notranslate">&amp;lt;?php if(wpsc_has_multi_adding()): ?&amp;gt;</pre>
<p>Тут вы видите несколько тегов <em>Input</em>. Некоторые из них спрятаны, и один виден и определен как <em>text</em>. Для того чтобы человек мог выбрать из определенных вами &#171;упаковок&#187; мы переделываем <em>input</em> в <em>select </em>и соответственно вписываем туда свои варианты. (Не забываем тегу select присвоить те же <em>name</em> и <em>id</em> что были и у тега <em>input</em>!!!).</p>
<p>Мой пример подразумевает под собой определенное количество товара в упаковке для КАЖДОЙ категории. Для этого и нужна вспомогательная переменная и проверка, которую я рассматривал в предыдущем посте (<a title="Кратная покупка товара WP E-commerce" href="http://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html" data-wpel-link="internal">Кратная покупка товара WP E-commerce</a>).</p>
<p><em>Если у вас во всех категориях один вариант кратности, то можно без проверок, просто вместо тега <strong>Input</strong>:</em></p>
<pre class="brush: plain; title: Код:; notranslate">&amp;lt;select id=&amp;quot;wpsc_quantity_update_&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;wpsc_quantity_update&amp;quot;&amp;gt;
&amp;lt;option value=&amp;quot;20&amp;quot;&amp;gt;20&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;40&amp;quot;&amp;gt;40&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;60&amp;quot;&amp;gt;60&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;80&amp;quot;&amp;gt;80&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;100&amp;quot;&amp;gt;100&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;шт.</pre>
<p>Если же все-таки в каждой категории своя кратность покупки товара, то делаем следующую проверку:</p>
<pre class="brush: php; title: Код:; notranslate">&amp;lt;?php if (eregi(&amp;quot;/(название-категории, в том виде, которую воспринимает сервер)/&amp;quot;,$var)){
 ?&amp;gt;
&amp;lt;select id=&amp;quot;wpsc_quantity_update_&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;wpsc_quantity_update&amp;quot;&amp;gt;
&amp;lt;option value=&amp;quot;20&amp;quot;&amp;gt;20&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;40&amp;quot;&amp;gt;40&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;60&amp;quot;&amp;gt;60&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;80&amp;quot;&amp;gt;80&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;100&amp;quot;&amp;gt;100&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;шт.
&amp;lt;?php
 }elseif (eregi(&amp;quot;/( название-категории2, в том виде, которую воспринимает  сервер)/&amp;quot;,$var)){
 ?&amp;gt;
&amp;lt;select id=&amp;quot;wpsc_quantity_update_&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;wpsc_quantity_update&amp;quot;&amp;gt;
&amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;4&amp;quot;&amp;gt;4&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;6&amp;quot;&amp;gt;6&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;8&amp;quot;&amp;gt;8&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;10&amp;quot;&amp;gt;10&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;20&amp;quot;&amp;gt;20&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;50&amp;quot;&amp;gt;50&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;100&amp;quot;&amp;gt;100&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;шт.
&amp;lt;?php
 }elseif (eregi(&amp;quot;/(название-категории3, в том виде, которую воспринимает  сервер)/&amp;quot;,$var)){
 ?&amp;gt;
&amp;lt;select id=&amp;quot;wpsc_quantity_update_&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;wpsc_quantity_update&amp;quot;&amp;gt;
&amp;lt;option value=&amp;quot;60&amp;quot;&amp;gt;60&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;120&amp;quot;&amp;gt;120&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;180&amp;quot;&amp;gt;180&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;240&amp;quot;&amp;gt;240&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;300&amp;quot;&amp;gt;300&amp;lt;/option&amp;gt;
&amp;lt;option value=&amp;quot;600&amp;quot;&amp;gt;600&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;шт.
&amp;lt;?php
 }else{ // Оставляем на всякий случай поле для ввода количества, в случае четвертой категории, которой не требуется кратность.
 ?&amp;gt;
&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;wpsc_quantity_update_&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;wpsc_quantity_update&amp;quot; size=&amp;quot;2&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;
&amp;lt;?php
 }
 ?&amp;gt;</pre>
<p>Как видит русский текст браузер (я, например, смотрю на ссылку через Opera DragonFly):<br />
<code>"без-рубрики" = "%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8"</code></p>
<p>Вроде все. Если возникают вопросы или затруднения &#8212; пишите мне в комменты. Если помогло, буду благодарен за &#171;+1&#187; от google или за хороший коммент =).<br />
Всем спасибо за внимание, удачного кодинга!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2011/08/kratnaya-pokupka-tovara-wp-e-commerce-s-vyiborom-ko.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Фильтр по категориям товаров в админке WP E-commerce</title>
		<link>https://nikita-sp.com.ua/2011/08/filtr-po-kategoriyam-tovarov-v-admink.html</link>
					<comments>https://nikita-sp.com.ua/2011/08/filtr-po-kategoriyam-tovarov-v-admink.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Tue, 02 Aug 2011 23:30:17 +0000</pubDate>
				<category><![CDATA[Статьи о php]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[интернет магазин]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=351</guid>

					<description><![CDATA[Данный пост написан в связи обнаружением недоработки в связке WordPress 3.2.x и WP e-Commerce 3.8.5. Хотя эта недоработка находиться именно в файлах плагина WP E-commerce версии 3.8.5, возможно в ранних версиях так же может быть замечен данный баг. Проблема состоит в том, что в админ-панеле, в разделе &#171;Товары&#187;, не отображается корректно список всех категорий магазина. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Данный пост написан в связи обнаружением недоработки в связке WordPress 3.2.x и WP e-Commerce 3.8.5. Хотя эта недоработка находиться именно в файлах плагина WP E-commerce версии 3.8.5, возможно в ранних версиях так же может быть замечен данный баг.</p>
<p>Проблема состоит в том, что в админ-панеле, в разделе &#171;Товары&#187;, не отображается корректно список всех категорий магазина.<span id="more-351"></span></p>
<p>Сегодня мы это исправим! Итак, функция вывода списка категорий для фильтра реализована в файле <em>display-items.page.php</em>, который находится по адресу: <em>wp-content/plugins/wp-e-commerce/wpsc-admin/</em><br />
Итак, находим нужную нам функцию на строке ~285 под названием <em>wpsc_cats_restrict_manage_posts_print_terms.</em></p>
<p>И вносим свои изменения и корректировки:</p>
<p>вместо</p>
<pre class="brush: php; title: Код:; notranslate">	$terms = get_terms( $taxonomy, array( 'parent' =&gt; $parent ) );
	if( !($terms instanceof WP_Error) &amp;&amp; !empty($terms) )</pre>
<p>пишем</p>
<pre class="brush: php; title: Код:; notranslate">	$terms = get_terms( $taxonomy, array('hide_empty'=&gt;0, 'parent'=&gt;$parent));
	if( !($terms instanceof WP_Error) &amp;&amp; !empty($terms) ){</pre>
<p>и не забываем добавить } (фигурную скобку) в конце функции.</p>
<p>Вот как выглядит готовая функция:</p>
<pre class="brush: php; title: Код:; notranslate">function wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $parent = 0, $level = 0){
	$prefix = str_repeat( '   ' , $level );
// Закоментируйте, ибо может пригодиться
//	$terms = get_terms( $taxonomy, array( 'parent' =&gt; $parent ) );
//	if( !($terms instanceof WP_Error) &amp;&amp; !empty($terms) )

// То что вставили, чтобы знали что удалить потом =)
	$terms = get_terms( $taxonomy, array('hide_empty'=&gt;0, 'parent'=&gt;$parent));
	if( !($terms instanceof WP_Error) &amp;&amp; !empty($terms) ){
// Конец хака
		foreach ( $terms as $term ){
			echo '&lt;option value=&quot;'. $term-&gt;slug . '&quot;', ( isset($_GET[$term-&gt;taxonomy]) &amp;&amp; $_GET[$term-&gt;taxonomy] == $term-&gt;slug) ? ' selected=&quot;selected&quot;' : '','&gt;' . $prefix . $term-&gt;name .' (' . $term-&gt;count .')&lt;/option&gt;';
			wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $term-&gt;term_id, $level+1);
		}
		}
}</pre>
<p>Вроде на этом и все. Спасибо за внимание, и за то что читаете мой блог. Пробуем, пишем отзывы, если помогло &#8212; говорим &#171;Спасибо&#187;! <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Всем удачного кодинга!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2011/08/filtr-po-kategoriyam-tovarov-v-admink.html/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Добавление 3D облака тегов в E-commerce</title>
		<link>https://nikita-sp.com.ua/2011/07/dobavlenie-3d-oblaka-tegov-v-e-commerce.html</link>
					<comments>https://nikita-sp.com.ua/2011/07/dobavlenie-3d-oblaka-tegov-v-e-commerce.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Fri, 29 Jul 2011 23:27:08 +0000</pubDate>
				<category><![CDATA[Создание сайтов]]></category>
		<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[Статьи о php]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[интернет магазин]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=344</guid>

					<description><![CDATA[Пост навеян желанием прикрутить трехмерное облако тегов на интернет-магазин wp e-commerce. Поиском плагинов я не стал себя утруждать, ибо это во-первых достаточно просто, а во-вторых &#8212; плагинов таких на скорую руку я не нашел и мне стало лень их дальше искать. Итак, собственно как добавить 3D облако тегов в интернет магазин на wp-e-commrece? Для начала [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Пост навеян желанием прикрутить трехмерное облако тегов на интернет-магазин wp e-commerce. Поиском плагинов я не стал себя утруждать, ибо это во-первых достаточно просто, а во-вторых &#8212; плагинов таких на скорую руку я не нашел и мне стало лень их дальше искать.</p>
<p>Итак, собственно как добавить 3D облако тегов в интернет магазин на wp-e-commrece?<span id="more-344"></span></p>
<p>Для начала откроем файл <em>tagging_functions.php</em>, который находится в директории: <i>wp-content/plugins/wp-e-commerce/wpsc-widgets/</i><br />
Найдем там строчки:</p>
<pre class="brush: php; title: Код:; notranslate">default :

$return = &amp;quot;&amp;lt;div id='product_tag_wrap'&amp;gt;&amp;quot;.join( &amp;quot;\n&amp;quot;, $a ).&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;

break;
</pre>
<p>Добавляем теги <em>div</em>, следующим образом (<a title="Flash облако тегов на обычной html странице" href="http://nikita-sp.com.ua/2011/04/flash-oblako-tegov-na-obyichnoy-html-stranitse.html" data-wpel-link="internal">Flash облако тегов</a>):</p>
<pre class="brush: php; title: Код:; notranslate">default :

$return = &amp;quot;&amp;lt;div id='product_tag_wrap'&amp;gt;&amp;lt;div id='tags'&amp;gt;&amp;quot;.join( &amp;quot;\n&amp;quot;, $a ).&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;

break;</pre>
<p>После этого, открываем файл <em>header.php</em>, находящийся по адресу: <i>wp-content/themes/ваша-тема/</i><br />
И туда добавляем код, подключающий все файлы:</p>
<pre class="brush: jscript; title: Код:; notranslate">&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;js/swfobject.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
 function  myTags(mytags){
 mytags=mytags.replace(/&amp;lt;A/g, '&amp;lt;a')
 .replace(/\/A&amp;gt;/g, &amp;quot;/a&amp;gt;&amp;quot;)
 .replace(/(\starget=_)(\w*)/g, ' target=&amp;quot;_$2&amp;quot;')
 .replace(/(\sclass=)(?!&amp;quot;)(\w*)/g, '')
 .replace(/(\sname=)(?!&amp;quot;)(\w*)/g, ' name=&amp;quot;$2&amp;quot;')
 .replace(/(\sid=)(?!&amp;quot;)(\w*)/g, ' id=&amp;quot;$2&amp;quot;')
 .replace(/(\srel=)(?!&amp;quot;)(\w*)/g, ' rel=&amp;quot;$2&amp;quot;');
 mytags=encodeURIComponent(mytags).replace(/!/g, '%21')
 .replace(/'/g, '%27').replace(/\(/g, '%28')
 .replace(/\)/g, '%29').replace(/\*/g, '%2A');
 var rnumber = Math.floor(Math.random()*9999999);
 var flashvars = {
 tcolor:&amp;quot;0x2A62C8&amp;quot;,
 tcolor2:&amp;quot;0x000000&amp;quot;,
 hicolor:&amp;quot;0xB12AC8&amp;quot;,
 tspeed:&amp;quot;110&amp;quot;,
 distr:&amp;quot;true&amp;quot;,
 mode:&amp;quot;tags&amp;quot;,
 tagcloud:mytags
 };
 var params = {
 allowScriptAccess:&amp;quot;always&amp;quot;,
 wmode:'transparent'
 };
 var attributes = {
 id:&amp;quot;flash_cloud&amp;quot;
 };
 swfobject.embedSWF(&amp;quot;tagcloud.swf?r=&amp;quot;+rnumber,
 &amp;quot;tags&amp;quot;, &amp;quot;100%&amp;quot;, &amp;quot;300&amp;quot;, &amp;quot;9.0.0&amp;quot;,
 &amp;quot;expressInstall.swf&amp;quot;, flashvars,
 params, attributes);
 }

 window.onload=function(){
 var mytags=&amp;quot;&amp;lt;tags&amp;gt;&amp;quot;
 +document.getElementById('tags').innerHTML
 +&amp;quot;&amp;lt;/tags&amp;gt;&amp;quot;;
 myTags(mytags);
 };
&amp;lt;/script&amp;gt;</pre>
<p>Все файлы качаем из предыдущего поста или по ссылке ниже и загружаем в корень сайта.<br />
<a title="Flash облако тегов на обычной html странице" href="http://nikita-sp.com.ua/2011/04/flash-oblako-tegov-na-obyichnoy-html-stranitse.html" data-wpel-link="internal">Flash облако тегов</a><br />
<a href="http://nikita-sp.com.ua/wp-content/uploads/2011/04/wp-cumulus.zip" data-wpel-link="internal">Скачать исходники + Демо</a></p>
<p>После того, как мы успешно добавили облако тегов к нам в интернет-магазин, мы можем им полюбоваться&#8230;Стоп, куда делись пробелы между словами? &#8212; спросите вы. Эту проблемы решаем всего лишь комментирование единственной строки в файле <em>tagging_functions.php</em>:</p>
<pre class="brush: php; title: Код:; notranslate">$tag = str_replace( ' ', '&amp;amp;nbsp;', esc_html( $tag ) );</pre>
<p>Все, на этом наши труды заканчиваются. Если статья помогла &#8212; напиши коммент, если у тебя есть решение лучше &#8212; пиши коммент!<br />
Всем спасибо за внимание! =)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2011/07/dobavlenie-3d-oblaka-tegov-v-e-commerce.html/feed</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Кратная покупка товара WP E-commerce</title>
		<link>https://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html</link>
					<comments>https://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Fri, 29 Jul 2011 12:16:45 +0000</pubDate>
				<category><![CDATA[Плагины и модули]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[интернет магазин]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=338</guid>

					<description><![CDATA[Недавно, передо мной стала задача реализовать покупку товара в интернет магазине исключительно по 20 штук за раз. Цена стояла за единицу товара, а продавался он пачками. Хоть и самым элементарным решением было ставить цену за пачку, по ТЗ нужно было сделать именно так, как просят. Установлен был WordPress и E-commerce. Начал копаться в коде. Итак, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Недавно, передо мной стала задача реализовать покупку товара в интернет магазине исключительно по 20 штук за раз. Цена стояла за единицу товара, а продавался он пачками. Хоть и самым элементарным решением было ставить цену за пачку, по ТЗ нужно было сделать именно так, как просят.</p>
<p>Установлен был WordPress и E-commerce. Начал копаться в коде.</p>
<p>Итак, как сделать покупку кратной? Чтобы человек сразу покупал не единицу товара а к примеру 5 или 10 штук. Такое можно встретить допустим в оптовом интернет-магазине, по-этому я считаю что данная статья может кому-то пригодиться еще. Возможно мой метод не корректный, но он рабочий, если у кого есть еще идеи &#8212; пишите, буду рад.<span id="more-338"></span></p>
<p>Все что нам необходимо, это найти в файле <em>ajax.functions.php</em> в папке: <i>wp-content/plugins/wp-e-commerce/wpsc-includes/</i></p>
<p>строки:</p>
<pre class="brush: php; title: Код:; notranslate">function wpsc_add_to_cart() {
global $wpdb, $wpsc_cart;
/// default values
$default_parameters['variation_values'] = null;
$default_parameters['quantity'] = 1;
$default_parameters['provided_price'] = null;
$default_parameters['comment'] = null;
$default_parameters['time_requested'] = null;
$default_parameters['custom_message'] = null;
$default_parameters['file_data'] = null;
$default_parameters['is_customisable'] = false;
$default_parameters['meta'] = null;
........</pre>
<p>В этих строках скрыты параметры продукта при добавлении его в корзину со страницы категории (весь список товаров) и со страницытовара (один товар), без добавления поля количества.</p>
<p>В этих строках нам нужна лишь одна</p>
<pre class="brush: php; title: Код:; notranslate">$default_parameters['quantity'] = 1;</pre>
<p>Тут указано количество товара по-умолчанию. Это количество можно изменить на любое, какое вам будет угодно.<br />
Но! Бывает такое, что для какой-то категории товара необходима кратность покупки N числу, а не 1, а для другой нет. Что же делать?</p>
<p>В данной связке есть функция &#171;хлебные крошки&#187; (<em>wpsc_breadcrumb</em>) ее мы и будем использовать для определения принадлежности продукта к той или иной категории, для установления кратности покупки.</p>
<p>Итак, используем функцию <em>wpsc_breadcrumb_url</em> , на сколько я понял она выводит путь к корневому каталогу магазина. К примеру http://your-url.com/products-page/ваша-категория/</p>
<p>Таким образом нам станет известно из этой функции корневую папку, для определения родительской папки можно просто воспользоваться функцией <em>wpsc_output_breadcrumbs(); </em>.</p>
<p>Как она нам поможет?<br />
Запишем возвращаемое значения нужной функции в любую переменную в файлах <em>wpsc-products_page.php</em> и <em>wpsc-single_product.php:</em></p>
<pre class="brush: php; title: Код:; notranslate">$var = wpsc_breadcrumb_url();</pre>
<p>После этого находим в форме для товара строки:</p>
<pre class="brush: php; title: Код:; notranslate">&amp;lt;input type=&amp;quot;hidden&amp;quot; value=&amp;quot;add_to_cart&amp;quot; name=&amp;quot;wpsc_ajax_action&amp;quot; /&amp;gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; value=&amp;quot;&amp;lt;?php echo wpsc_the_product_id(); ?&amp;gt;&amp;quot; name=&amp;quot;product_id&amp;quot; /&amp;gt;</pre>
<p>И вставляем после них строку:</p>
<pre class="brush: php; title: Код:; notranslate">&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;hack&amp;quot; value=&amp;quot;&amp;lt;? echo $var; ?&amp;gt;&amp;quot; /&amp;gt;</pre>
<p>Теперь в нашем файле <em>ajax.functions.php</em>  можно поставить обычную проверку, например:</p>
<pre class="brush: php; title: Код:; notranslate">if (eregi(&amp;quot;/(категория-1)/&amp;quot;,$_POST['hack'])){
$default_parameters['quantity'] = 20;
}elseif (eregi(&amp;quot;/(категория-2)/&amp;quot;,$_POST['hack'])){
$default_parameters['quantity'] = 5;
}else{
$default_parameters['quantity'] = 1;
}</pre>
<p>Только кириллица должна быть в формате:</p>
<pre>"без-рубрики" = "%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8"</pre>
<p>Вроде все.  Если есть дополнения, исправления &#8212; пишите, буду рад выслушать ваши умозаключения. Спасибо за внимание. <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>UPD: <a title="Кратная покупка товара WP E-commerce с выбором количества товаров" href="http://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html" data-wpel-link="internal">Кратная покупка товара WP E-commerce с выбором количества товаров</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2011/07/kratnaya-pokupka-tovara-wp-e-commerce.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
