Есть несколько вопросов по wordpress woocommerce.
Я только начинаю знакомится с этой cms.
в общем то есть ряд проблем )
1. поставил плагин WooCommerce Advanced Product Quantities, который добавляет минимально количество товара для покупки + шаг количества товаров, допустим есть линейка одежды, в ней 5 штук разных размеров, минимальный заказ 5 штук, шаг 5, т.е. 5 , 10 , 15 и т.д.
так вот всё работает отлично, но ! на всех товарах в категориях естественно есть кнопка добавить в корзину, при нажатии на кнопку, в корзину пытается добавиться один товар, затем перекидывает на страницу товара где пишется ошибка , что нельзя купить меньше 5 штук ну и со страницы можно добавить в корзину.
Собственно сам вопрос, можно ли добавить к кнопке добавления в корзину из каталога мин, кол.во товара, которое берется из плагина. Сам плагин подгружается на страницу... то что выдернул из фаербага.
jQuery(document).ready( function($) {
/*
* Quantity Rule Validation
*
* If user enters a value that is out of bounds,
* it will be auto corrected to a valid value.
*/
$(".qty").change(function() {
// Get values from input box
var new_qty = $(this).val();
var step = $(this).attr( 'step' );
var max = $(this).attr( 'max' );
var min = $(this).attr( 'min' );
// Adjust default values if values are blank
if ( min == '' || typeof min == 'undefined' )
min = 1;
if ( step == '' || typeof step == 'undefined')
step = 1;
// Max Value Validation
if ( +new_qty > +max && max != '' ) {
new_qty = max;
// Min Value Validation
} else if ( +new_qty < +min && min != '' ) {
new_qty = min;
}
// Calculate remainder
var rem = ( new_qty - min ) % step;
// Step Value Value Validation
if ( rem != 0 ) {
new_qty = +new_qty + (+step - +rem);
// Max Value Validation
if ( +new_qty > +max ) {
new_qty = +new_qty - +step;
}
}
// Set the new value
$(this).val( new_qty );
});
/*
* Make sure minimum equals value
* To Fix: when min = 0 and val = 1
*/
if ( $("body.single-product .qty").val() != $("body.single-product .qty").attr('min') && $("body.single-product .qty").attr('min') != '' ) {
$("body.single-product .qty").val( $("body.single-product .qty").attr('min') );
}
/*
* Variable Product Support
*
* Need to overwrite what WC changes with their js
*/
// Get localized Variables
if ( typeof ipq_validation !== 'undefined' ) {
var start_min = ipq_validation.min;
var start_max = ipq_validation.max;
var start_step = ipq_validation.step;
}
// Update input box after variaiton selects are blured
$('.variations select').bind('blur',function() {
// Update min
if ( start_min != $('.qty').attr('min') && start_min != '' ) {
$('.qty').attr('min', start_min );
}
// Update max
if ( start_max != $('.qty').attr('max') && start_max != '' ) {
$('.qty').attr('max', start_max );
}
// Update step
if ( start_step != $('.qty').attr('step') && start_step != '' ) {
$('.qty').attr('step', start_step );
}
// Make sure intput value is in bounds
if ( start_min > $('.qty').attr('value') && start_min != '' ) {
$('.qty').attr('value', start_min );
}
});
});
вот js кот кнопки которая добавляет в корзину
jQuery(function(a) {
return "undefined" == typeof wc_add_to_cart_params?!1 : void a(document).on("click", ".add_to_cart_button", function() {
var b = a(this);
if (b.is(".product_type_simple")) {
if (!b.attr("data-product_id"))
return !0;
b.removeClass("added"), b.addClass("loading");
var c = {
action: "woocommerce_add_to_cart"
};
return a.each(b.data(), function(a, b) {
c[a] = b
}), a("body").trigger("adding_to_cart", [b, c]), a.post(wc_add_to_cart_params.ajax_url, c, function(c) {
if (c) {
var d = window.location.toString();
return d = d.replace("add-to-cart", "added-to-cart"), c.error && c.product_url ? void(window.location = c.product_url) : "yes" === wc_add_to_cart_params.cart_redirect_after_add ? void(window.location = wc_add_to_cart_params.cart_url) : (b.removeClass("loading"), fragments = c.fragments, cart_hash = c.cart_hash, fragments && a.each(fragments, function(b) {
a(b).addClass("updating")
}), a(".shop_table.cart, .updating, .cart_totals").fadeTo("400", "0.6").block({
message: null,
overlayCSS: {
opacity: .6
}
}), b.addClass("added"), wc_add_to_cart_params.is_cart || 0 !== b.parent().find(".added_to_cart").size() || b.after(' <a href="' + wc_add_to_cart_params.cart_url + '" class="added_to_cart wc-forward" title="' + wc_add_to_cart_params.i18n_view_cart + '">' + wc_add_to_cart_params.i18n_view_cart + "</a>"), fragments && a.each(fragments, function(b, c) {
a(b).replaceWith(c)
}), a(".widget_shopping_cart, .updating").stop(!0).css("opacity", "1").unblock(), a(".shop_table.cart").load(d + " .shop_table.cart:eq(0) > *", function() {
a(".shop_table.cart").stop(!0).css("opacity", "1").unblock(), a("body").trigger("cart_page_refreshed")
}), a(".cart_totals").load(d + " .cart_totals:eq(0) > *", function() {
a(".cart_totals").stop(!0).css("opacity", "1").unblock()
}), a("body").trigger("added_to_cart", [fragments, cart_hash, b]), void 0)
}
}), !1
}
return !0
})
});
2. И второй вопрос поставил плагин YITH WOOCOMMERCE QUICK VIEW
когда открываем , нет описания товара, и нет кнопок товара количества товара и кол.во товара равно 1 шт, хотя если нажать и зайти в детальную инфо товара, там всё ка надо 5шт.
/**
* frontend.js
*
*
author Your Inspiration Themes
* @package YITH WooCommerce Quick View
* @version 1.0.0
*/
jQuery(document).ready(function($){
"use strict";
var qv_modal = $(document).find( '#yith-quick-view-modal' ),
qv_overlay = qv_modal.find( '.yith-quick-view-overlay'),
qv_content = qv_modal.find( '#yith-quick-view-content' ),
qv_close = qv_modal.find( '#yith-quick-view-close' );
/*==================
*MAIN BUTTON OPEN
==================*/
$.yith_quick_view = function() {
var trigger = $(document).find( '.yith-wcqv-button' );
// remove prev click event
trigger.off( 'click' );
trigger.on( 'click', function(e){
e.preventDefault();
var t = $(this),
product_id = t.data( 'product_id' ),
is_blocked = false;
if ( typeof yith_qv.loader !== 'undefined' ) {
is_blocked = true;
t.block({
message: null,
overlayCSS : {
background: '#fff url(' + yith_qv.loader + ') no-repeat center',
opacity : 0.5,
cursor : 'none'
}
});
}
ajax_call( t, product_id, is_blocked );
});
};
// init
$.yith_quick_view();
/*================
* MAIN AJAX CALL
================*/
var ajax_call = function( t, product_id, is_blocked ) {
$.post( yith_qv.ajaxurl, { action: 'yith_load_product_quick_view', product_id: product_id }, function( data ) {
qv_content.html( data );
// quantity fields for WC 2.2
if( yith_qv.is2_2 ) {
qv_content.find('div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)').addClass('buttons_added').append('').prepend('');
}
// Variation Form
var form_variation = qv_content.find( '.variations_form' );
form_variation.wc_variation_form();
if( typeof $.fn.yith_wccl !== 'undefined' ) {
form_variation.yith_wccl();
}
// Init prettyPhoto
if( typeof $.fn.prettyPhoto !== 'undefined' ) {
qv_content.find("a[data-rel^='prettyPhoto'], a.zoom").prettyPhoto({
hook : 'data-rel',
social_tools : false,
theme : 'pp_woocommerce',
horizontal_padding: 20,
opacity : 0.8,
deeplinking : false
});
}
if( ! qv_modal.hasClass( 'open' ) ) {
qv_modal.addClass('open');
if( is_blocked )
t.unblock();
}
// stop loader
$(document).trigger( 'qv_loader_stop' );
});
};
/*===================
* CLOSE QUICK VIEW
===================*/
var close_modal_qv = function() {
// Close box by click overlay
qv_overlay.on( 'click', function(e){
close_qv();
});
// Close box with esc key
$(document).keyup(function(e){
if( e.keyCode === 27 )
close_qv();
});
// Close box by click close button
qv_close.on( 'click', function(e) {
e.preventDefault();
close_qv();
});
var close_qv = function() {
qv_modal.removeClass('open');
setTimeout(function () {
qv_content.html('');
}, 1000);
}
};
close_modal_qv();
});
вот думаю или убрать кнопку добавления в корзину и оставить только возможность из quick view добавлять, или оставить и то и то, ещё бы разобраться как это сделать )))
Направьте хотя бы в какую сторону копать...