Version Description
- Fix: Security fix
Download this release
Release Info
| Developer | quadlayers |
| Plugin | |
| Version | 2.0.4 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.3 to 2.0.4
- classes/admin/class-brands-custom-fields.php +3 -3
- classes/admin/class-brands-exporter.php +16 -2
- classes/admin/class-pwb-admin-tab.php +11 -13
- classes/admin/class-pwb-coupon.php +1 -1
- classes/admin/class-pwb-migrate.php +102 -104
- classes/class-perfect-woocommerce-brands.php +5 -1
- classes/class-pwb-product-tab.php +6 -2
- classes/shortcodes/class-pwb-all-brands.php +1 -1
- perfect-woocommerce-brands.php +2 -2
- readme.txt +4 -2
classes/admin/class-brands-custom-fields.php
CHANGED
|
@@ -136,7 +136,7 @@ class Brands_Custom_Fields
|
|
| 136 |
|
| 137 |
/* ·············· Brand image ·············· */
|
| 138 |
$old_img = get_term_meta($term_id, 'pwb_brand_image', true);
|
| 139 |
-
$new_img = isset($_POST['pwb_brand_image']) ? $_POST['pwb_brand_image'] : '';
|
| 140 |
|
| 141 |
if ($old_img && '' === $new_img)
|
| 142 |
delete_term_meta($term_id, 'pwb_brand_image');
|
|
@@ -147,7 +147,7 @@ class Brands_Custom_Fields
|
|
| 147 |
|
| 148 |
/* ·············· Brand banner ·············· */
|
| 149 |
$old_img = get_term_meta($term_id, 'pwb_brand_banner', true);
|
| 150 |
-
$new_img = isset($_POST['pwb_brand_banner']) ? $_POST['pwb_brand_banner'] : '';
|
| 151 |
|
| 152 |
if ($old_img && '' === $new_img)
|
| 153 |
delete_term_meta($term_id, 'pwb_brand_banner');
|
|
@@ -158,7 +158,7 @@ class Brands_Custom_Fields
|
|
| 158 |
|
| 159 |
/* ·············· Brand banner link ·············· */
|
| 160 |
$old_img = get_term_meta($term_id, 'pwb_brand_banner_link', true);
|
| 161 |
-
$new_img = isset($_POST['pwb_brand_banner_link']) ? $_POST['pwb_brand_banner_link'] : '';
|
| 162 |
|
| 163 |
if ($old_img && '' === $new_img)
|
| 164 |
delete_term_meta($term_id, 'pwb_brand_banner_link');
|
| 136 |
|
| 137 |
/* ·············· Brand image ·············· */
|
| 138 |
$old_img = get_term_meta($term_id, 'pwb_brand_image', true);
|
| 139 |
+
$new_img = isset($_POST['pwb_brand_image']) ? sanitize_text_field($_POST['pwb_brand_image']) : '';
|
| 140 |
|
| 141 |
if ($old_img && '' === $new_img)
|
| 142 |
delete_term_meta($term_id, 'pwb_brand_image');
|
| 147 |
|
| 148 |
/* ·············· Brand banner ·············· */
|
| 149 |
$old_img = get_term_meta($term_id, 'pwb_brand_banner', true);
|
| 150 |
+
$new_img = isset($_POST['pwb_brand_banner']) ? sanitize_text_field($_POST['pwb_brand_banner']) : '';
|
| 151 |
|
| 152 |
if ($old_img && '' === $new_img)
|
| 153 |
delete_term_meta($term_id, 'pwb_brand_banner');
|
| 158 |
|
| 159 |
/* ·············· Brand banner link ·············· */
|
| 160 |
$old_img = get_term_meta($term_id, 'pwb_brand_banner_link', true);
|
| 161 |
+
$new_img = isset($_POST['pwb_brand_banner_link']) ? esc_url_raw($_POST['pwb_brand_banner_link']) : '';
|
| 162 |
|
| 163 |
if ($old_img && '' === $new_img)
|
| 164 |
delete_term_meta($term_id, 'pwb_brand_banner_link');
|
classes/admin/class-brands-exporter.php
CHANGED
|
@@ -25,7 +25,13 @@ class Brands_Exporter
|
|
| 25 |
|
| 26 |
public function export_brands()
|
| 27 |
{
|
| 28 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
$this->get_brands();
|
| 30 |
} else {
|
| 31 |
wp_send_json_error();
|
|
@@ -71,7 +77,15 @@ class Brands_Exporter
|
|
| 71 |
public function import_brands()
|
| 72 |
{
|
| 73 |
|
| 74 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
$file = $_FILES['file'];
|
| 77 |
|
| 25 |
|
| 26 |
public function export_brands()
|
| 27 |
{
|
| 28 |
+
if (
|
| 29 |
+
isset($_REQUEST['nonce'])
|
| 30 |
+
&&
|
| 31 |
+
wp_verify_nonce($_REQUEST['nonce'], 'pwb_brands_export')
|
| 32 |
+
&&
|
| 33 |
+
current_user_can('manage_options')
|
| 34 |
+
) {
|
| 35 |
$this->get_brands();
|
| 36 |
} else {
|
| 37 |
wp_send_json_error();
|
| 77 |
public function import_brands()
|
| 78 |
{
|
| 79 |
|
| 80 |
+
if (
|
| 81 |
+
isset($_FILES['file'])
|
| 82 |
+
&&
|
| 83 |
+
isset($_REQUEST['nonce'])
|
| 84 |
+
&&
|
| 85 |
+
wp_verify_nonce($_REQUEST['nonce'], 'pwb_brands_import')
|
| 86 |
+
&&
|
| 87 |
+
current_user_can('manage_options')
|
| 88 |
+
) {
|
| 89 |
|
| 90 |
$file = $_FILES['file'];
|
| 91 |
|
classes/admin/class-pwb-admin-tab.php
CHANGED
|
@@ -53,19 +53,17 @@ class Pwb_Admin_Tab
|
|
| 53 |
return;
|
| 54 |
}
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
echo '</ul><br class="clear" />';
|
| 69 |
}
|
| 70 |
|
| 71 |
public function get_settings($current_section = '')
|
| 53 |
return;
|
| 54 |
}
|
| 55 |
|
| 56 |
+
?>
|
| 57 |
+
<ul class="subsubsub">
|
| 58 |
+
<?php foreach ($sections as $id => $label) : ?>
|
| 59 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=' . $this->id . '§ion=' . $id); ?>" class="<?php echo ($current_section == $id ? 'current' : ''); ?>"><?php esc_html_e($label); ?></a></li> |
|
| 60 |
+
<?php endforeach; ?>
|
| 61 |
+
<li><a target="_blank" href="<?php echo admin_url('edit-tags.php?taxonomy=pwb-brand&post_type=product'); ?>"><?php esc_html_e('Brands', 'perfect-woocommerce-brands'); ?></a></li> |
|
| 62 |
+
<li><a target="_blank" href="<?php echo admin_url('admin.php?page=pwb_suggestions'); ?>"><?php esc_attr_e('Suggestions', 'perfect-woocommerce-brands'); ?></a></li> |
|
| 63 |
+
<li><a target="_blank" href="<?php echo esc_url(PWB_DOCUMENTATION_URL); ?>"><?php esc_html_e('Documentation', 'perfect-woocommerce-brands'); ?></a></li>
|
| 64 |
+
</ul>
|
| 65 |
+
<br class="clear" />
|
| 66 |
+
<?php
|
|
|
|
|
|
|
| 67 |
}
|
| 68 |
|
| 69 |
public function get_settings($current_section = '')
|
classes/admin/class-pwb-coupon.php
CHANGED
|
@@ -38,7 +38,7 @@
|
|
| 38 |
}
|
| 39 |
|
| 40 |
public function coupon_save( $post_id ){
|
| 41 |
-
$_pwb_coupon_restriction = isset( $_POST['_pwb_coupon_restriction'] ) ? $_POST['_pwb_coupon_restriction'] : '';
|
| 42 |
update_post_meta( $post_id, '_pwb_coupon_restriction', $_pwb_coupon_restriction );
|
| 43 |
}
|
| 44 |
|
| 38 |
}
|
| 39 |
|
| 40 |
public function coupon_save( $post_id ){
|
| 41 |
+
$_pwb_coupon_restriction = isset( $_POST['_pwb_coupon_restriction'] ) ? sanitize_text_field($_POST['_pwb_coupon_restriction']) : '';
|
| 42 |
update_post_meta( $post_id, '_pwb_coupon_restriction', $_pwb_coupon_restriction );
|
| 43 |
}
|
| 44 |
|
classes/admin/class-pwb-migrate.php
CHANGED
|
@@ -1,124 +1,122 @@
|
|
| 1 |
<?php
|
| 2 |
-
namespace Perfect_Woocommerce_Brands\Admin;
|
| 3 |
|
| 4 |
-
|
| 5 |
|
| 6 |
-
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
}
|
| 11 |
-
|
| 12 |
-
public function migrate_from(){
|
| 13 |
-
|
| 14 |
-
if( isset( $_POST['from'] ) ){
|
| 15 |
-
|
| 16 |
-
switch( $_POST['from'] ) {
|
| 17 |
-
case 'yith':
|
| 18 |
-
$this->migrate_from_yith();
|
| 19 |
-
break;
|
| 20 |
-
case 'ultimate':
|
| 21 |
-
$this->migrate_from_ultimate();
|
| 22 |
-
break;
|
| 23 |
-
case 'woobrands':
|
| 24 |
-
$this->migrate_from_woobrands();
|
| 25 |
-
break;
|
| 26 |
-
}
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
}
|
| 30 |
-
|
| 31 |
-
wp_die();
|
| 32 |
}
|
| 33 |
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
global $wpdb;
|
| 37 |
-
$terms = $wpdb->get_col( 'SELECT term_id FROM '.$wpdb->prefix.'term_taxonomy WHERE taxonomy LIKE "yith_product_brand"' );
|
| 38 |
-
|
| 39 |
-
foreach( $terms as $term_id ) {
|
| 40 |
-
|
| 41 |
-
//change taxonomy
|
| 42 |
-
$wpdb->update(
|
| 43 |
-
$wpdb->prefix . 'term_taxonomy',
|
| 44 |
-
array(
|
| 45 |
-
'taxonomy' => 'pwb-brand'
|
| 46 |
-
),
|
| 47 |
-
array(
|
| 48 |
-
'term_id' => $term_id
|
| 49 |
-
)
|
| 50 |
-
);
|
| 51 |
-
|
| 52 |
-
//update term meta
|
| 53 |
-
$wpdb->update(
|
| 54 |
-
$wpdb->prefix . 'termmeta',
|
| 55 |
-
array(
|
| 56 |
-
'meta_key' => 'pwb_brand_image'
|
| 57 |
-
),
|
| 58 |
-
array(
|
| 59 |
-
'meta_key' => 'thumbnail_id',
|
| 60 |
-
'term_id' => $term_id
|
| 61 |
-
)
|
| 62 |
-
);
|
| 63 |
-
|
| 64 |
-
}
|
| 65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
}
|
|
|
|
| 67 |
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
)
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
}
|
| 95 |
-
|
| 96 |
}
|
|
|
|
| 97 |
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
global $wpdb;
|
| 101 |
-
$terms = $wpdb->get_col( 'SELECT term_id FROM '.$wpdb->prefix.'term_taxonomy WHERE taxonomy LIKE "product_brand"' );
|
| 102 |
|
| 103 |
-
|
|
|
|
| 104 |
|
| 105 |
-
|
| 106 |
-
$wpdb->update(
|
| 107 |
-
$wpdb->prefix . 'term_taxonomy',
|
| 108 |
-
array(
|
| 109 |
-
'taxonomy' => 'pwb-brand'
|
| 110 |
-
),
|
| 111 |
-
array(
|
| 112 |
-
'term_id' => $term_id
|
| 113 |
-
)
|
| 114 |
-
);
|
| 115 |
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
|
|
|
|
|
|
|
|
|
|
| 122 |
}
|
| 123 |
-
|
| 124 |
}
|
|
|
| 1 |
<?php
|
|
|
|
| 2 |
|
| 3 |
+
namespace Perfect_Woocommerce_Brands\Admin;
|
| 4 |
|
| 5 |
+
defined('ABSPATH') or die('No script kiddies please!');
|
| 6 |
|
| 7 |
+
class PWB_Migrate
|
| 8 |
+
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
+
function __construct()
|
| 11 |
+
{
|
| 12 |
+
add_action('wp_ajax_pwb_admin_migrate_brands', array($this, 'migrate_from'));
|
| 13 |
+
}
|
| 14 |
|
| 15 |
+
public function migrate_from()
|
| 16 |
+
{
|
| 17 |
+
|
| 18 |
+
if (isset($_POST['from'])) {
|
| 19 |
+
|
| 20 |
+
switch ($_POST['from']) {
|
| 21 |
+
case 'yith':
|
| 22 |
+
$this->migrate_from_yith();
|
| 23 |
+
break;
|
| 24 |
+
case 'ultimate':
|
| 25 |
+
$this->migrate_from_ultimate();
|
| 26 |
+
break;
|
| 27 |
+
case 'woobrands':
|
| 28 |
+
$this->migrate_from_woobrands();
|
| 29 |
+
break;
|
| 30 |
}
|
|
|
|
|
|
|
| 31 |
}
|
| 32 |
|
| 33 |
+
wp_die();
|
| 34 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
+
public function migrate_from_yith()
|
| 37 |
+
{
|
| 38 |
+
|
| 39 |
+
global $wpdb;
|
| 40 |
+
$terms = $wpdb->get_col('SELECT term_id FROM ' . $wpdb->prefix . 'term_taxonomy WHERE taxonomy LIKE "yith_product_brand"');
|
| 41 |
+
|
| 42 |
+
foreach ($terms as $term_id) {
|
| 43 |
+
|
| 44 |
+
//change taxonomy
|
| 45 |
+
$wpdb->update(
|
| 46 |
+
$wpdb->prefix . 'term_taxonomy',
|
| 47 |
+
array(
|
| 48 |
+
'taxonomy' => 'pwb-brand'
|
| 49 |
+
),
|
| 50 |
+
array(
|
| 51 |
+
'term_id' => $term_id
|
| 52 |
+
)
|
| 53 |
+
);
|
| 54 |
+
|
| 55 |
+
//update term meta
|
| 56 |
+
$wpdb->update(
|
| 57 |
+
$wpdb->prefix . 'termmeta',
|
| 58 |
+
array(
|
| 59 |
+
'meta_key' => 'pwb_brand_image'
|
| 60 |
+
),
|
| 61 |
+
array(
|
| 62 |
+
'meta_key' => 'thumbnail_id',
|
| 63 |
+
'term_id' => $term_id
|
| 64 |
+
)
|
| 65 |
+
);
|
| 66 |
}
|
| 67 |
+
}
|
| 68 |
|
| 69 |
+
public function migrate_from_ultimate()
|
| 70 |
+
{
|
| 71 |
+
|
| 72 |
+
global $wpdb;
|
| 73 |
+
$terms = $wpdb->get_col('SELECT term_id FROM ' . $wpdb->prefix . 'term_taxonomy WHERE taxonomy LIKE "product_brand"');
|
| 74 |
+
|
| 75 |
+
foreach ($terms as $term_id) {
|
| 76 |
+
|
| 77 |
+
//change taxonomy
|
| 78 |
+
$wpdb->update(
|
| 79 |
+
$wpdb->prefix . 'term_taxonomy',
|
| 80 |
+
array(
|
| 81 |
+
'taxonomy' => 'pwb-brand'
|
| 82 |
+
),
|
| 83 |
+
array(
|
| 84 |
+
'term_id' => $term_id
|
| 85 |
+
)
|
| 86 |
+
);
|
| 87 |
+
|
| 88 |
+
/**
|
| 89 |
+
* Ultimate WooCommerce Brands uses tax-meta-class, tax meta are really options
|
| 90 |
+
* @link https://github.com/bainternet/Tax-Meta-Class
|
| 91 |
+
*/
|
| 92 |
+
$term_meta = get_option('tax_meta_' . $term_id);
|
| 93 |
+
if (isset($term_meta['mgwb_image_brand_thumb']['id']))
|
| 94 |
+
add_term_meta($term_id, 'pwb_brand_image', $term_meta['mgwb_image_brand_thumb']['id']);
|
|
|
|
|
|
|
| 95 |
}
|
| 96 |
+
}
|
| 97 |
|
| 98 |
+
public function migrate_from_woobrands()
|
| 99 |
+
{
|
|
|
|
|
|
|
| 100 |
|
| 101 |
+
global $wpdb;
|
| 102 |
+
$terms = $wpdb->get_col('SELECT term_id FROM ' . $wpdb->prefix . 'term_taxonomy WHERE taxonomy LIKE "product_brand"');
|
| 103 |
|
| 104 |
+
foreach ($terms as $term_id) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
|
| 106 |
+
// change taxonomy
|
| 107 |
+
$wpdb->update(
|
| 108 |
+
$wpdb->prefix . 'term_taxonomy',
|
| 109 |
+
array(
|
| 110 |
+
'taxonomy' => 'pwb-brand'
|
| 111 |
+
),
|
| 112 |
+
array(
|
| 113 |
+
'term_id' => $term_id
|
| 114 |
+
)
|
| 115 |
+
);
|
| 116 |
|
| 117 |
+
// add the logo id
|
| 118 |
+
if ($thumb_id = get_woocommerce_term_meta($term_id, 'thumbnail_id', true))
|
| 119 |
+
add_term_meta($term_id, 'pwb_brand_image', $thumb_id);
|
| 120 |
}
|
|
|
|
| 121 |
}
|
| 122 |
+
}
|
classes/class-perfect-woocommerce-brands.php
CHANGED
|
@@ -190,8 +190,12 @@ class Perfect_Woocommerce_Brands
|
|
| 190 |
public function dismiss_pwb_notice()
|
| 191 |
{
|
| 192 |
$notice_name_whitelist = array('wc_pwb_notice_plugin_review');
|
|
|
|
| 193 |
if (isset($_POST['notice_name']) && in_array($_POST['notice_name'], $notice_name_whitelist)) {
|
| 194 |
-
|
|
|
|
|
|
|
|
|
|
| 195 |
echo 'ok';
|
| 196 |
} else {
|
| 197 |
echo 'error';
|
| 190 |
public function dismiss_pwb_notice()
|
| 191 |
{
|
| 192 |
$notice_name_whitelist = array('wc_pwb_notice_plugin_review');
|
| 193 |
+
|
| 194 |
if (isset($_POST['notice_name']) && in_array($_POST['notice_name'], $notice_name_whitelist)) {
|
| 195 |
+
|
| 196 |
+
$notice_key = sanitize_key($_POST['notice_name']);
|
| 197 |
+
|
| 198 |
+
update_option($notice_key, 0);
|
| 199 |
echo 'ok';
|
| 200 |
} else {
|
| 201 |
echo 'error';
|
classes/class-pwb-product-tab.php
CHANGED
|
@@ -55,8 +55,12 @@ class PWB_Product_Tab
|
|
| 55 |
|
| 56 |
<div id="tab-pwb_tab-content">
|
| 57 |
<h3><?php echo esc_html($brand->name); ?></h3>
|
| 58 |
-
<?php if (!empty($brand->description))
|
| 59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
</div>
|
| 61 |
|
| 62 |
<?php endforeach; ?>
|
| 55 |
|
| 56 |
<div id="tab-pwb_tab-content">
|
| 57 |
<h3><?php echo esc_html($brand->name); ?></h3>
|
| 58 |
+
<?php if (!empty($brand->description)) : ?>
|
| 59 |
+
<div><?php echo do_shortcode($brand->description); ?></div>
|
| 60 |
+
<?php endif; ?>
|
| 61 |
+
<?php if (!empty($brand_logo)) : ?>
|
| 62 |
+
<span><?php echo wp_kses_post($brand_logo); ?></span>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
</div>
|
| 65 |
|
| 66 |
<?php endforeach; ?>
|
classes/shortcodes/class-pwb-all-brands.php
CHANGED
|
@@ -86,7 +86,7 @@ class PWB_All_Brands_Shortcode
|
|
| 86 |
$page = 1;
|
| 87 |
|
| 88 |
if (isset($_GET['pwb-page']) && filter_var($_GET['pwb-page'], FILTER_VALIDATE_INT) == true) {
|
| 89 |
-
$page = $_GET['pwb-page'];
|
| 90 |
}
|
| 91 |
|
| 92 |
$page = $page < 1 ? 1 : $page;
|
| 86 |
$page = 1;
|
| 87 |
|
| 88 |
if (isset($_GET['pwb-page']) && filter_var($_GET['pwb-page'], FILTER_VALIDATE_INT) == true) {
|
| 89 |
+
$page = intval($_GET['pwb-page']);
|
| 90 |
}
|
| 91 |
|
| 92 |
$page = $page < 1 ? 1 : $page;
|
perfect-woocommerce-brands.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
* Plugin Name: Perfect Brands for WooCommerce
|
| 5 |
* Plugin URI: https://quadlayers.com/portfolio/perfect-woocommerce-brands/
|
| 6 |
* Description: Perfect WooCommerce Brands allows you to show product brands in your WooCommerce based store.
|
| 7 |
-
* Version: 2.0.
|
| 8 |
* Author: QuadLayers
|
| 9 |
* Author URI: https://quadlayers.com
|
| 10 |
* Text Domain: perfect-woocommerce-brands
|
|
@@ -36,7 +36,7 @@ define('PWB_PLUGIN_FILE', __FILE__);
|
|
| 36 |
define('PWB_PLUGIN_URL', plugins_url('', __FILE__));
|
| 37 |
define('PWB_PLUGIN_DIR', __DIR__ . DIRECTORY_SEPARATOR);
|
| 38 |
define('PWB_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
| 39 |
-
define('PWB_PLUGIN_VERSION', '2.0.
|
| 40 |
define('PWB_PLUGIN_NAME', 'Perfect WooCommerce Brands');
|
| 41 |
define('PWB_PREFIX', 'pwb');
|
| 42 |
define('PWB_REVIEW_URL', 'https://wordpress.org/support/plugin/perfect-woocommerce-brands/reviews/?filter=5#new-post');
|
| 4 |
* Plugin Name: Perfect Brands for WooCommerce
|
| 5 |
* Plugin URI: https://quadlayers.com/portfolio/perfect-woocommerce-brands/
|
| 6 |
* Description: Perfect WooCommerce Brands allows you to show product brands in your WooCommerce based store.
|
| 7 |
+
* Version: 2.0.4
|
| 8 |
* Author: QuadLayers
|
| 9 |
* Author URI: https://quadlayers.com
|
| 10 |
* Text Domain: perfect-woocommerce-brands
|
| 36 |
define('PWB_PLUGIN_URL', plugins_url('', __FILE__));
|
| 37 |
define('PWB_PLUGIN_DIR', __DIR__ . DIRECTORY_SEPARATOR);
|
| 38 |
define('PWB_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
| 39 |
+
define('PWB_PLUGIN_VERSION', '2.0.4');
|
| 40 |
define('PWB_PLUGIN_NAME', 'Perfect WooCommerce Brands');
|
| 41 |
define('PWB_PREFIX', 'pwb');
|
| 42 |
define('PWB_REVIEW_URL', 'https://wordpress.org/support/plugin/perfect-woocommerce-brands/reviews/?filter=5#new-post');
|
readme.txt
CHANGED
|
@@ -5,9 +5,9 @@ Tags: woocommerce, woocommerce brands, woocommerce product, woocommerce manufact
|
|
| 5 |
Requires at least: 4.7
|
| 6 |
Tested up to: 5.8
|
| 7 |
Requires PHP: 5.6
|
| 8 |
-
Stable tag: 2.0.
|
| 9 |
WC requires at least: 3.0
|
| 10 |
-
WC tested up to: 6.
|
| 11 |
License: GPLv3
|
| 12 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 13 |
|
|
@@ -90,6 +90,8 @@ You can also contribute [translating the plugin](https://translate.wordpress.org
|
|
| 90 |
|
| 91 |
|
| 92 |
== Changelog ==
|
|
|
|
|
|
|
| 93 |
= 2.0.3 =
|
| 94 |
* Fix: Security fix
|
| 95 |
= 2.0.2 =
|
| 5 |
Requires at least: 4.7
|
| 6 |
Tested up to: 5.8
|
| 7 |
Requires PHP: 5.6
|
| 8 |
+
Stable tag: 2.0.4
|
| 9 |
WC requires at least: 3.0
|
| 10 |
+
WC tested up to: 6.1
|
| 11 |
License: GPLv3
|
| 12 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 13 |
|
| 90 |
|
| 91 |
|
| 92 |
== Changelog ==
|
| 93 |
+
= 2.0.4 =
|
| 94 |
+
* Fix: Security fix
|
| 95 |
= 2.0.3 =
|
| 96 |
* Fix: Security fix
|
| 97 |
= 2.0.2 =
|
