<?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>Version Notes - CODIBU</title>
	<atom:link href="https://help.codibu.com/kbtopic/version-notes/feed/" rel="self" type="application/rss+xml" />
	<link>https://help.codibu.com</link>
	<description>Hosting &#38; Domain,  Development &#38; Design, SEO &#38; Marketing, 2300+ Themes &#38; Plugins, Free SEO analysis &#38; tools</description>
	<lastBuildDate>Sun, 08 Nov 2020 16:22:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://help.codibu.com/wp-content/uploads/2022/07/favicon.png</url>
	<title>Version Notes - CODIBU</title>
	<link>https://help.codibu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WooCommerce Developer Wiki</title>
		<link>https://help.codibu.com/blog/woocommerce-developer-wiki/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=woocommerce-developer-wiki</link>
					<comments>https://help.codibu.com/blog/woocommerce-developer-wiki/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:22:46 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/woocommerce-developer-wiki/</guid>

					<description><![CDATA[<p>The WooCommerce Developer Wiki is where we store developer-focused documentation for WooCommerce core. Resources also include: REST API Documentation, Internal API Documentation, and End-User Documentation.   Note: This is a Developer level page.<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/woocommerce-developer-wiki/">WooCommerce Developer Wiki</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>The WooCommerce Developer Wiki is where we store developer-focused documentation for WooCommerce core.</p>
<p>Resources also include: REST API Documentation, Internal API Documentation, and End-User Documentation.</p>
<p class="p1"> </p>
<div class="woo-sc-box note   "><b>Note:</b> This is a <b>Developer level</b> page. If you are unfamiliar with code/templates and resolving potential conflicts, select a <span class="s2">WooExpert or Developer</span> for assistance.</div>
<p>&nbsp;</p>
<h2 id="section-1">Release<strong> Notes</strong></h2>
<ul>
<li>2.6.x to 3.0.0 Developer Migration Notes</li>
<li>Enabling Product Gallery Features (Zoom, Swipe, Lightbox) in 3.0.0</li>
</ul>
<h2 id="section-2">CRUD &amp; Data Descriptions</h2>
<ul>
<li>Database Description</li>
<li>CRUD Objects in 3.0</li>
<li>Order and Order Line Item Data</li>
<li>Coupon Data</li>
<li>Customer Data</li>
<li>Product Data</li>
<li>Data Stores</li>
</ul>
<h2 id="section-3">Internal APIs</h2>
<ul>
<li>Settings API</li>
<li>Payment Token API</li>
<li>Shipping Method API</li>
</ul>
<h2 id="section-4">CLI (Command line interface)</h2>
<ul>
<li>WC CLI Overview</li>
<li>WC CLI Commands</li>
</ul>
<h2 id="section-5">Examples / Guides</h2>
<ul>
<li>How Taxes Work in WooCommerce</li>
<li>Customizing Account Page Tabs</li>
<li>End-to-end Testing</li>
<li>Getting Started with the REST API</li>
</ul>
<h2 id="section-6">Contribution / Guidelines</h2>
<ul>
<li>Our Git Flow</li>
<li>How to Ensure SCSS and Scripts are Minified</li>
<li>CSS SASS Coding Guidelines and Naming Conventions</li>
<li>Core Testing Checklist</li>
<li>String Localization Guidelines</li>
<li>Template File Guidelines for Devs and Theme Authors</li>
<li>Deprecation in core</li>
</ul><p>The post <a href="https://help.codibu.com/blog/woocommerce-developer-wiki/">WooCommerce Developer Wiki</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/woocommerce-developer-wiki/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to update your PHP version</title>
		<link>https://help.codibu.com/blog/how-to-update-your-php-version/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-update-your-php-version</link>
					<comments>https://help.codibu.com/blog/how-to-update-your-php-version/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:22:15 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/how-to-update-your-php-version/</guid>

					<description><![CDATA[<p>PHP is the most popular server-side scripting language, powering millions of websites including most WooCommerce stores. If you arrived at this page from the notice in<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/how-to-update-your-php-version/">How to update your PHP version</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>PHP is the most popular server-side scripting language, powering millions of websites including most WooCommerce stores.</p>
<p>If you arrived at this page from the notice in your WooCommerce store, your store is running an <b>outdated and unmaintained</b> version of PHP. Not only is your website’s performance (a lot) lower than it should be, you may find that things do not work as you expect and be open to security vulnerabilities!</p>
<h2 id="section-1">What is PHP?</h2>
<p>PHP is a scripting language which most likely powers your WooCommerce webshop. PHP, like all software, gets updated over time to patch security issues and improve its features. And like other software, it’s important to keep your PHP version up to date.</p>
<h2 id="section-2">Updating your PHP version</h2>
<h3 id="section-3">Contact your host</h3>
<p>In most cases you cannot update the PHP version yourself and need to contact your host about this. The upgrade process is an easy process and should be something your host can do for you without impacting your website or charging you a fee. Here’s a letter you can send to your hosting company:</p>
<blockquote class="wp-block-quote">
<p>Dear host,</p>
<p>I’m running a WooCommerce webshop on one of your servers and WooCommerce has recommended using at least PHP 7.0. WordPress, the content management system that WooCommerce uses, has listed PHP 7.4 as the recommended version on n their requirements page: https://wordpress.org/about/requirements/</p>
<p>Can you please let me know if my hosting supports PHP 7.0 or higher and how I can upgrade?</p>
<p>Looking forward to your reply.</p>
</blockquote>
<h3 id="section-4">VPS Server</h3>
<p>If you have a VPS server, see How to upgrade from PHP 5.</p>
<h2 id="section-5">My host doesn’t support PHP 7.0</h2>
<p>If your host doesn’t support PHP 7.0 or higher, we recommend you find a host that does. We have a list of <a title="WordPress Hosting Solutions" href="http://woocommerce.com/hosting-solutions/" target="_blank" rel="noopener noreferrer">WordPress hosting solutions we recommend</a> and all support PHP 7.0 or higher. If you contact another host, be sure to ask them which PHP version your website will run on before purchasing.</p>
<h2 id="section-6">More information</h2>
<p>PHP has a list of unsupported version including dates on their website. If you develop WordPress plugins yourself you might want to check out the PHP library called WPupdatePHP.</p><p>The post <a href="https://help.codibu.com/blog/how-to-update-your-php-version/">How to update your PHP version</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/how-to-update-your-php-version/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AJAX problems in Windows 7/8 and Internet Explorer 10</title>
		<link>https://help.codibu.com/blog/ajax-problems-in-windows-7-8-and-internet-explorer-10/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajax-problems-in-windows-7-8-and-internet-explorer-10</link>
					<comments>https://help.codibu.com/blog/ajax-problems-in-windows-7-8-and-internet-explorer-10/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:21:45 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/ajax-problems-in-windows-7-8-and-internet-explorer-10/</guid>

					<description><![CDATA[<p>There is a bug in Internet Explorer 10 that causes almost all jQuery and AJAX calls to fail, when used on both Windows 7 and 8.<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/ajax-problems-in-windows-7-8-and-internet-explorer-10/">AJAX problems in Windows 7/8 and Internet Explorer 10</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>There is a bug in Internet Explorer 10 that causes almost all jQuery and AJAX calls to fail, when used on both Windows 7 and 8. This causes a lot of issues within WooCommerce, especially when it comes to adding products to cart.</p>
<p><strong>Important: </strong>It’s an issue that is impossible to work around, until Microsoft fixes this bug in an upcoming fix release.</p>
<h2 id="section-1">External software conflicts</h2>
<p>There are also numerous reports about external software hooking into Internet Explorer, like “Free Download Manager” and “Download Accelerator Plus”. These claims have never been confirmed to actually be part of the cause of this issue.</p>
<h2 id="section-2">Related information</h2>
<ol>
<li>#12790 ticket on jQuery issue tracker. jQuery closed this issue as ‘cantfix’ on their issue tracker, where it is discussed for a couple months now and provides a lot background information.</li>
<li>#3150 ticket on our issue tracker and before that also on the support forums.</li>
</ol><p>The post <a href="https://help.codibu.com/blog/ajax-problems-in-windows-7-8-and-internet-explorer-10/">AJAX problems in Windows 7/8 and Internet Explorer 10</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/ajax-problems-in-windows-7-8-and-internet-explorer-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>jQuery.cookie.js/jQuery.cookie.min.js scripts fail to load</title>
		<link>https://help.codibu.com/blog/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load</link>
					<comments>https://help.codibu.com/blog/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:21:18 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/</guid>

					<description><![CDATA[<p>This is a problem with the server-setting, meaning that your hosting company will need to solve this on your behalf. The problem is outdated MOD_SECURITY core<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/">jQuery.cookie.js/jQuery.cookie.min.js scripts fail to load</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>This is a problem with the server-setting, meaning that your hosting company will need to solve this on your behalf. The problem is outdated MOD_SECURITY core ruleset.</p>
<h2 id="section-1">Option 1: Get your host to update the rule set</h2>
<p>This is by far the best option as everything will then work as by design. Contact your hosting provider for assistance.</p>
<h2 id="option-2-rename-files-and-update-functionsphp"><strong>Option 2: Rename files and update functions.php<br />
</strong></h2>
<div class="woo-sc-box note   ">This option only works with WooCommerce 2.6.14 or below. If you are running WooCommerce 3.0.0 or above, please refer to Option 1 or 3.</div>
<p>Alternatively, you’ll need to change how WooCommerce handles the files. This change will need to be repeated whenever you update the WooCommerce plugin as the changes will be overwritten.</p>
<p>Rename these files:</p>
<pre>wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.js
wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js

to:

wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery_cookie.js
wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery_cookie.min.js
</pre>
<p>And add the following to your theme’s functions.php file:</p>
<div id="gist39948417" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-mod-security-outdated" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-text  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-mod-security-outdated-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-mod-security-outdated-LC1" class="blob-code blob-code-inner js-file-line">add_action( &#8216;wp_enqueue_scripts&#8217;, &#8216;custom_frontend_scripts&#8217; );function custom_frontend_scripts() {global $post, $woocommerce;</td>
</tr>
<tr>
<td id="file-mod-security-outdated-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-mod-security-outdated-LC2" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-mod-security-outdated-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-mod-security-outdated-LC3" class="blob-code blob-code-inner js-file-line">$suffix = defined( &#8216;SCRIPT_DEBUG&#8217; ) &amp;&amp; SCRIPT_DEBUG ? : &#8216;.min&#8217;;</td>
</tr>
<tr>
<td id="file-mod-security-outdated-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-mod-security-outdated-LC4" class="blob-code blob-code-inner js-file-line">wp_deregister_script( &#8216;jquery-cookie&#8217; );</td>
</tr>
<tr>
<td id="file-mod-security-outdated-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-mod-security-outdated-LC5" class="blob-code blob-code-inner js-file-line">wp_register_script( &#8216;jquery-cookie&#8217;, $woocommerce-&gt;plugin_url() . &#8216;/assets/js/jquery-cookie/jquery_cookie&#8217; . $suffix . &#8216;.js&#8217;, array( &#8216;jquery&#8217; ), &#8216;1.3.1&#8217;, true );</td>
</tr>
<tr>
<td id="file-mod-security-outdated-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-mod-security-outdated-LC6" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<h2 id="section-3">Option 3: use a plugin to rename the files</h2>
<p>If the first two options aren’t possible, then you can use a plugin, which renames the file being loaded:</p>
<ul>
<li>If you are using <strong>WooCommerce 2.6.14 or below</strong>: <span class="title">woocommerce-jquery-cookie-fix.</span><span class="ext">zip</span></li>
<li>If you are using WooCommerce 3.0.0 or above: woocommerce-js-cookie-fix</li>
</ul>
<p>Note: Please remove any previous fixes you may have applied.</p><p>The post <a href="https://help.codibu.com/blog/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/">jQuery.cookie.js/jQuery.cookie.min.js scripts fail to load</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/jquery-cookie-js-jquery-cookie-min-js-scripts-fail-to-load/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PCI-DSS Compliance and WooCommerce</title>
		<link>https://help.codibu.com/blog/pci-dss-compliance-and-woocommerce/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pci-dss-compliance-and-woocommerce</link>
					<comments>https://help.codibu.com/blog/pci-dss-compliance-and-woocommerce/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:20:46 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/pci-dss-compliance-and-woocommerce/</guid>

					<description><![CDATA[<p>What is PCI-DSS? PCI-DSS (Payment Card Industry Data Security Standard) is a set of actionable rules defined by the Payment Card Industry Security Standards Council to encourage the<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/pci-dss-compliance-and-woocommerce/">PCI-DSS Compliance and WooCommerce</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 id="section-1">What is PCI-DSS?</h2>
<p>PCI-DSS (Payment Card Industry Data Security Standard) is a set of actionable rules defined by the Payment Card Industry Security Standards Council to encourage the broad adoption of consistent data security measures around the world with an aim to reduce credit card fraud.</p>
<p>These rules apply to anyone who is storing, processing or transmitting credit card data, therefore merchants who wish to take Credit Card payments on their sites directly need to be aware of PCI-DSS.</p>
<p>For more information about PCI-DSS see here.</p>
<h2 id="section-2">Do I need to be PCI-DSS Compliant?</h2>
<p>If you are transmitting credit card data; <strong>yes</strong>. Your site needs to be PCI-DSS compliant.</p>
<p>If, however, you are taking payments off site by using a gateway that uses its own servers to take payments (PayFast, PayPal Standard, etc.), you are not transmitting card data and do not need to take steps to comply.<em> If you are not comfortable about becoming PCI Compliant, use a gateway which handles PCI for you.</em></p>
<h2 id="section-3">PCI-DSS Core Requirements</h2>
<p>The 12 core PCI-DSS requirements are as follows:</p>
<table>
<tbody>
<tr>
<th>BUILD AND MAINTAIN A SECURE NETWORK</th>
<td>
<ol>
<li>Install and maintain a firewall configuration to protect cardholder data</li>
<li>Do not use vendor-supplied defaults for system passwords and other security parameters</li>
</ol>
</td>
</tr>
<tr>
<th>PROTECT CARDHOLDER DATA</th>
<td>
<ol start="3">
<li>Protect stored cardholder data</li>
<li>Encrypt transmission of cardholder data across open, public networks</li>
</ol>
</td>
</tr>
<tr>
<th>MAINTAIN A VULNERABILITY MANAGEMENT PROGRAM</th>
<td>
<ol start="5">
<li>Use and regularly update anti-virus software</li>
<li>Develop and maintain secure systems and applications</li>
</ol>
</td>
</tr>
<tr>
<th>IMPLEMENT STRONG ACCESS CONTROL MEASURES</th>
<td>
<ol start="7">
<li>Restrict access to cardholder data by business need-to-know</li>
<li>Assign a unique ID to each person with computer access</li>
<li>Restrict physical access to cardholder data</li>
</ol>
</td>
</tr>
<tr>
<th>REGULARLY MONITOR AND TEST NETWORKS</th>
<td>
<ol start="10">
<li>Track and monitor all access to network resources and cardholder data</li>
<li>Regularly test security systems and processes</li>
</ol>
</td>
</tr>
<tr>
<th>MAINTAIN AN INFORMATION SECURITY POLICY</th>
<td>
<ol start="12">
<li>Maintain a policy that addresses information security</li>
</ol>
</td>
</tr>
</tbody>
</table>
<h2 id="section-4">Reporting Compliance</h2>
<p>Typically, PCI compliance reports are enforced by your payment processor – they may require that you fill out questionnaires (Self Assessment Questionnaire – or SAQ) or be scanned by an ASV (approved scanning vendor) of their choosing.</p>
<h2 id="section-5">WooCommerce and PCI Compliance</h2>
<p>Ultimately, PCI and all of the above points are the responsibility of the store owner, however, we can offer advice on compliance. It should be noted that WooCommerce is not PCI-DSS certified – however, this does not prevent your site from becoming PCI compliant. WooCommerce is written with security in mind with audits from WP core contributors and Sucuri.</p>
<p>Regarding the PCI-DSS requirements, many of the points above are beyond the scope of WordPress and WooCommerce – instead falling into the area of hosting and business policies/best practice for the website owner to abide by. Referencing the core PCI-DSS requirements above:</p>
<ol>
<li><em>Out of scope.</em> Firewalls would be the responsibility of the hosting provider or network administrator</li>
<li><em>Out of scope. </em>Passwords would need to be set responsibly by yourself – use strong passwords at all times and ensure the hosting environment is 100% secure.</li>
<li><strong>WooCommerce</strong> helps with this requirement by never storing card details. Our in-house payment gateways also never store more than 4 digits of a card number if storing payment tokens for re-use.</li>
<li><strong>WooCommerce</strong> has options to enforce SSL on your checkout pages. You should of course ensure your hosting provider implements SSL to work with this.</li>
<li><em>Out of scope.</em> Virus protection would be down to your hosting provider.</li>
<li><em>Out of scope.</em> Maintaing a secure system to avoid threats would be down to your hosting provider.</li>
<li><strong>WooCommerce</strong> uses the WordPress login system which can be used to give administrative access to whom you desire. Security best practices such as strong passwords and usernames would be your responsibility.</li>
<li><em>Out of scope.</em> Work with the host/network admin to ensure all admin access to systems containing credit card details is logged and trackable. Users need to be traceable and accountable for their actions. Access should be limited to only those who need it.</li>
<li><em>Out of scope. </em>Access to physical stored and transmitted data should be restricted by the hosting provider.</li>
<li><em>Out of scope.</em> Monitoring access would need to be taken care by the network admin or hosting provier.</li>
<li><em>Out of scope.</em> Use an ASV (approved scanning vendor) to regular scan your site for issues.</li>
<li><em>Out of scope. </em>Creating, maintaining and distributing a policy on addressing the PCI-DSS requirements, as well as a risk assessment is the responsibility of the merchant/store owner.</li>
</ol>
<p>Therefore, considering the above points, the following steps should be taken if you aim to achieve compliance:</p>
<ol>
<li>Choose a <strong>trusted, secure hosting provider</strong> – preferably one which claims and actively promotes PCI compliance. Cheap, shared hosts are unlikely to cover this.</li>
<li>Use security best practices when setting <strong>passwords</strong> and <strong>limit access</strong> to your server.</li>
<li>Never <strong>store</strong> credit card details anywhere.</li>
<li>With the aid of your hosting provider, <strong>implement SSL</strong> to keep your checkout secure.</li>
<li>Keep installed plugins to a minimum; remember, <strong>compliance covers all installed software</strong> so that includes plugins and WordPress itself.</li>
<li>Keep plugins <strong>up to date</strong> to ensure latest security fixes are present.</li>
<li>Working with your payment processor, use an ASV (approved scanning vendor) to scan your site and find issues – fixing any identified issues until passing the scan.</li>
</ol>
<p>Or alternatively, choose a gateway which handles this for you offsite.</p><p>The post <a href="https://help.codibu.com/blog/pci-dss-compliance-and-woocommerce/">PCI-DSS Compliance and WooCommerce</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/pci-dss-compliance-and-woocommerce/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WooCommerce 1.6.6 -&gt; 2.0 – Plugin and theme compatibility</title>
		<link>https://help.codibu.com/blog/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=woocommerce-1-6-6-2-0-plugin-and-theme-compatibility</link>
					<comments>https://help.codibu.com/blog/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:19:57 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/</guid>

					<description><![CDATA[<p>This document provides handy code snippets, outlines some of the main changes in WC 2.0 and explains how you can maintain compatibility. Other useful resources relating to WC<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/">WooCommerce 1.6.6 -> 2.0 – Plugin and theme compatibility</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>This document provides handy code snippets, outlines some of the main changes in WC 2.0 and explains how you can maintain compatibility.</p>
<p>Other useful resources relating to WC 2.0 include:</p>
<ul>
<li>Migrating your plugin to WC 2.0</li>
<li>Beta 1 announcement post</li>
<li>Beta 2 announcement post</li>
<li>Coen on WC 2.0</li>
</ul>
<h2 id="section-1">Detecting WC version</h2>
<p>If you need to conditionally handle WC 2.0, use the following:</p>
<pre class="brush: php; gutter: true">if ( version_compare( WOOCOMMERCE_VERSION, '2.0', '&lt;' ) ) {
  // Pre 2.0
} else {
  // 2.0
}</pre>
<h2 id="section-2">Changes affecting Payment Gateways</h2>
<p>There are 2 main changes to gateways which will affect plugins;</p>
<ol>
<li>The save hook</li>
<li>Dynamic loading</li>
</ol>
<p>Save hooks have been tweaks so that only 1 gateway is shown and saved per page. To maintain compatibility with 1.6.6 and 2.0 use the following snippet:</p>
<pre class="brush: php; gutter: true">/* 1.6.6 */
add_action( 'woocommerce_update_options_payment_gateways', array( &amp;$this, 'process_admin_options' ) );

/* 2.0.0 */
add_action( 'woocommerce_update_options_payment_gateways_' . $this-&gt;id, array( $this, 'process_admin_options' ) );</pre>
<p>This will ensure the save function kicks in on both versions of WooCommerce.</p>
<p>The second change is dynamic loading, and this can be a bit more involved. Basically, in the name of optimisation gateways are only loaded when needed. If you have an IPN like function (on ‘init’ for example) it may no longer be triggered. Therefore to get around this, use <strong>WC-API</strong>.</p>
<h3 id="section-3">WC-API callbacks</h3>
<p>Callbacks should be in the below format:</p>
<pre class="brush: php; gutter: false">http://yoursite.com/?wc-api=WC_Gateway_Your_Gateway_Class</pre>
<p>WooCommerce will see this callback, init the class passed to wc-api, and then trigger an action:</p>
<pre class="brush: php; gutter: false">woocommerce_api_wc_gateway_your_gateway_class</pre>
<p>Hook into that via your payment gateway and you can do your required actions.</p>
<pre class="brush: php; gutter: false">add_action( 'woocommerce_api_' . strtolower( get_class( $this ) ), array( $this, 'gateway_response' ) );</pre>
<h3 id="section-4">Order statuses</h3>
<p>If your gateway leaves an order in pending status you are #doingitwrong. Pending is unpaid, and as of WC 2.0, unpaid orders will be cancelled after x hours.</p>
<h2 id="section-5">Changes to WC_Product classes</h2>
<p>Probably the change most likely to break sites is the WC_Product class – this is now <strong>abstract</strong> and extended by specific product classes depending on product type. <strong>Do not initiate WC_Product – it will cause a fatal error in 2.0.</strong></p>
<p>Instead use the <strong>get_product</strong>() function. This handles product types and returns a product object to you. Below is an example of backwards compatible code for loading products:</p>
<pre class="brush: php; gutter: true">if ( function_exists( 'get_product' ) )
$product = get_product( $post-&gt;ID );
else
$product = new WC_Product( $post-&gt;ID );</pre>
<p>If you only need 2.0 compatibility, just use get_product on its own.</p>
<h3 id="section-6">Custom field data</h3>
<p>product_custom_fields won’t be in the product classes as of 2.0 – you can get meta just like this:</p>
<pre class="brush: php; gutter: false">$product_class-&gt;meta_key</pre>
<p>The meta will be loaded dynamically.</p>
<h2 id="section-7">Sessions with WC 2.0</h2>
<p>In WC 2.0 we decided to stop supporting PHP SESSIONS – you can still use them, but you’ll need your own session_start(). Your choice. The alternative however, is our new session class (which at the time of writing uses cookies and transients/options).</p>
<p>To set session data just use:</p>
<pre class="brush: php; gutter: false">$woocommerce-&gt;session-&gt;your_var = 'x';</pre>
<p>To unset data use:</p>
<pre class="brush: php; gutter: false">unset( $woocommerce-&gt;session-&gt;your_var );</pre>
<h2 id="section-8">Theme Gotchas</h2>
<p>[box type=”alert”]Some class names containing <code>woocommerce_</code> or <code>wc-</code> have been renamed for consistency to woocommerce- (hyphenated). You will need to replace all instances of ‘<code>.wc-</code>‘ or ‘<code>.woocommerce_</code>‘ with ‘<code>.woocommerce-</code>‘ in your custom stylesheet(s).[/box]</p>
<p>Widgets have been renamed so if you call them directly in your template, they need to be renamed. E.G. <code class="brush: php; gutter: false">WC_Widget_Cart</code> becomes <code class="brush: php; gutter: false">WooCommerce_Widget_Cart</code>.</p>
<p>Pulling gallery images dynamically? Re-check this, the attachment ID’s are stored in meta now.</p>
<p>Pagination and sorting has received an overhaul. Sorting is now before the loop and accompanied by a product count. Pagination remains beneath the loop.</p>
<p>Star ratings are in the loop now</p>
<p>Quantity inputs now use <code class="brush: html; gutter: false">input type="number"</code> so you will need to choose whether to hide our plus / minus buttons (added via jQuery) or hide the browser default UI. Use the following to hide the browser default:</p>
<pre class="brush: css; gutter: true">input::-webkit-outer-spin-button, input::-webkit-inner-spin-button {
display:none;
}</pre>
<p>Checkout form is now validated in real time adding <code class="brush: css; gutter: false">.woocomemerce-invalid</code> or <code class="brush: css; gutter: false">.woocomemerce-valid</code><br />
to the respective <code class="brush: css; gutter: false">.form-row</code> You may want to style this.</p>
<p>Up sells are now hooked in ahead of related products on product details pages</p>
<p>If your theme uses custom loops, be sure to read this.</p>
<p>If your theme doesn’t declare WooCommerce support a message will be displayed in the dashboard. To declare WooCommerce support in your theme add the following to your functions.php file;</p>
<pre class="brush: php; gutter: true">add_action( 'after_setup_theme', 'woocommerce_support' );
function woocommerce_support() {
add_theme_support( 'woocommerce' );
}</pre>
<h2 id="section-9">Template overrides</h2>
<p>Check *all* template overrides if you have any – many files changed so custom template are likely to cause issues. <strong>And remember to only override what you need to edit</strong>, not all templates! Some theme authors do this and it causes nothing but trouble.</p><p>The post <a href="https://help.codibu.com/blog/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/">WooCommerce 1.6.6 -> 2.0 – Plugin and theme compatibility</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/woocommerce-1-6-6-2-0-plugin-and-theme-compatibility/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PayPal Gateway Vulnerability + Patch – WC 1.6.5.1</title>
		<link>https://help.codibu.com/blog/paypal-gateway-vulnerability-patch-wc-1-6-5-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paypal-gateway-vulnerability-patch-wc-1-6-5-1</link>
					<comments>https://help.codibu.com/blog/paypal-gateway-vulnerability-patch-wc-1-6-5-1/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:19:26 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/paypal-gateway-vulnerability-patch-wc-1-6-5-1/</guid>

					<description><![CDATA[<p>Description In older versions of WooCommerce, the PayPal gateway did not check the value returned from IPN. This meant that if someone changed the payment form<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/paypal-gateway-vulnerability-patch-wc-1-6-5-1/">PayPal Gateway Vulnerability + Patch – WC 1.6.5.1</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1 id="description">Description</h1>
<p>In older versions of WooCommerce, the PayPal gateway did not check the value returned from IPN. This meant that if someone changed the payment form code during checkout, they could modify the order cost sent to PayPal without affecting the order status after payment. This cost change would be obvious from the PayPal payment notifications, however could go unnoticed.</p>
<p>Patching this vulnerability or upgrading to 1.6.5.2 is highly recommended.</p>
<h1 id="affected-versions">Affected version(s)</h1>
<p>WooCommerce <strong>1.6.5.1</strong> and below are affected. This issue was patched in 1.6.5.2.</p>
<h1 id="affected-files">Affected file(s)</h1>
<p><strong>woocommerce</strong> / classes / gateways / paypal / <strong>class-wc-paypal.php</strong></p>
<h1 id="manual-patch">Manual Patch</h1>
<p>On <strong>line 608</strong> of the paypal gateway, the following check needs to be added to prevent the issue:</p>
<pre class="brush: php; gutter: true">// Validate Amount
    if ( $order-&gt;get_total() != $posted['mc_gross'] ) {

    if ( $this-&gt;debug == 'yes' )
    $this-&gt;log-&gt;add( 'paypal', 'Payment error: Amounts do not match (gross ' . $posted['mc_gross'] . ')' );

    // Put this order on-hold for manual checking
    $order-&gt;update_status( 'on-hold', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'woocommerce' ), $posted['mc_gross'] ) );

    exit;
    }</pre><p>The post <a href="https://help.codibu.com/blog/paypal-gateway-vulnerability-patch-wc-1-6-5-1/">PayPal Gateway Vulnerability + Patch – WC 1.6.5.1</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/paypal-gateway-vulnerability-patch-wc-1-6-5-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Template changes in WooCommerce 1.6</title>
		<link>https://help.codibu.com/blog/template-changes-in-woocommerce-1-6/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=template-changes-in-woocommerce-1-6</link>
					<comments>https://help.codibu.com/blog/template-changes-in-woocommerce-1-6/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Sun, 08 Nov 2020 16:18:23 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/template-changes-in-woocommerce-1-6/</guid>

					<description><![CDATA[<p>With WooCommerce 1.6 now available, there are a couple of changes in the template system that make it more efficient and easier to customize than before.<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/template-changes-in-woocommerce-1-6/">Template changes in WooCommerce 1.6</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>With WooCommerce 1.6 now available, there are a couple of changes in the template system that make it more efficient and easier to customize than before. We also completely removed the use of the query_posts function, making queries executed in order to load pages more flexible.</p>
<h1 id="moved-the-main-loops">Moved the main loops</h1>
<p>The most important change is that we have moved the location of where the loops are actually started. In versions prior to WooCommerce 1.6, the loops were a part of a function, including other files. This made perfect sense for developer and users with more than average knowledge of code, but for the majority it was a maze of files and functions.</p>
<p>The main loops have now been moved back to <em>archive-product.php</em> and <em>single-product.php</em>.</p>
<h1 id="new-content-parts-in-template-files">New content parts in template files</h1>
<p>With the new loops in place, we enabled easier override of specific parts of the templates. That is where we introduced <em>content-product_cat.php</em>, <em>content-product.php</em> and <em>content-single-product.php</em>. These files will be used in all archive or single pages of products, moving the way these parts look to the exact same files. In other words, you only have to make changes to one file to change how a product looks on all archives.</p>
<h1 id="removed-parts-of-the-older-templates">Removed parts of the older templates</h1>
<p>Because we have so many new ways to work with and override the templates, some parts of the template became obsolete.</p>
<h2 id="section-1">Removed template files</h2>
<p>We stripped out a couple of template files: <em>loop-product-cats.php</em> and <em>loop-shop.php</em>.</p>
<h2 id="section-2">Deprecated functions</h2>
<p>Because of the new way the template system works, three functions have been stripped out:</p>
<ul>
<li>woocommerce_single_product_content()</li>
<li>woocommerce_archive_product_content()</li>
<li>woocommerce_product_taxonomy_content()</li>
</ul>
<p>These functions have no alternative available since they no longer have a use. The deprecated versions of these functions will call woocommerce_content() for now, providing reasonable backwards compatibility. You will not lose any functionality, but might want to polish up the looks of the files using these functions as there are better ways to do this available now.</p><p>The post <a href="https://help.codibu.com/blog/template-changes-in-woocommerce-1-6/">Template changes in WooCommerce 1.6</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/template-changes-in-woocommerce-1-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
