我有一个定义明确的 AJAX 过滤器,分为两部分,一部分用于加载更多按钮,另一部分用于选择下拉过滤器。两者都在 AJAX 中重新加载前端的属性列表,并协同工作(例如,如果我在下拉列表中选择了最低价格、最高价格和床位数量,则列表会刷新,并且加载更多按钮可以正常工作) .
相同的过滤器也适用于 URL 参数。例如,如果 URL 是:
mydomain.com/?min_price=100000&max_price=5000000&beds=3&page=3
Run Code Online (Sandbox Code Playgroud)
它将按这些参数进行过滤。它甚至显示了 3 页价值的属性。这很好用,包括在初始加载时。但是,它不适用于分页,如果 URL 是直接加载的。如果我直接在浏览器中输入上面的 URL 并加载,初始结果是正确的,但是在单击加载更多按钮时,它将 page=3 更改为 page=4(正确)但它附加了未过滤完成的第二页属性,并继续这样做 - 而不是继续过滤分页。
我究竟做错了什么?
这是我的代码(对不起,它太多了!)
JS:
jQuery(function($){
// AJAX Stuff for filters + load more button
/*
* Load More
*/
$('#prop_loadmore').click(function(){
$.ajax({
url : prop_loadmore_params.ajaxurl,
data : {
'action': 'loadmorebutton',
'query': prop_loadmore_params.posts, // loop parameters passed by wp_localize_script()
'page' : prop_loadmore_params.current_page, // Get the current page
},
type : 'POST',
beforeSend : function ( xhr ) {
$('#prop_loadmore').text( …Run Code Online (Sandbox Code Playgroud) 我一直在使用 Lauren Gray 的这段代码:
https://gist.github.com/graylaurenm/86daa4f23aa8749c0933f72133ac7106
在我的 Wordpress 网站上,它非常适用于主页和存档循环——任何内置在主 wp_Query 中的循环。但是,我创建了一个新的自定义 WP_Query 并且 AJAX 不起作用,单击按钮时显示“找不到更多文章”...
$loop = new WP_Query( array(
'post_type' => 'post',
'paged' => $paged,
'posts_per_page' => 10
) );
if ( $loop->have_posts() ) :
while ( $loop->have_posts() ) : $loop->the_post();
remove_action( 'genesis_entry_content', 'genesis_do_post_content' );
remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
remove_action( 'genesis_entry_content', 'genesis_do_post_image', 8 );
add_action( 'genesis_entry_header', 'genesis_do_post_image', 8 );
add_action('genesis_entry_header','add_play_button');
echo '<article class="' . $countClasses . implode( ' ', get_post_class() ) . '">'; // add column class
do_action( 'genesis_entry_header' …Run Code Online (Sandbox Code Playgroud) 我在WooCommerce网站上有一些自定义代码,可将产品添加到用户购物车中。我已经检查了购物车中的物品以确保购物车中首先有其他产品,但是我还希望它检查要添加的产品是否也有库存...
我想不出最好的方法来做到这一点。如果您可以让我知道要添加到函数中的内容以使其检查“ product_id”的库存以及库存是否大于0,将不胜感激。这是我的代码:
add_action( 'template_redirect', 'add_product_to_cart' );
function add_product_to_cart() {
if ( ! is_admin() ) {
$product_id = 21576;
$found = false;
global $woocommerce;
//check if product already in cart
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
// if product not found, add it
if ( ! $found )
WC()->cart->add_to_cart( $product_id );
if (sizeof( WC()->cart->get_cart() ) …Run Code Online (Sandbox Code Playgroud) 希望对你们中的那些知道的人来说是一个简单的。我创建了一个自定义字段,显示在 WooCommerce Checkout 帐单信息上。
function reigel_woocommerce_checkout_fields( $checkout_fields = array() ) {
$checkout_fields['billing']['order_birth_date'] = array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'id' => 'datepicker',
'required' => false,
'name' => 'jqueryDate',
'maxlength' => '8',
'label' => __('Date of Birth'),
'placeholder' => __('MM/DD/YY'),
'options' => $mydateoptions,
'value' => 'test'
);
return $checkout_fields;
}
add_filter( 'woocommerce_checkout_fields', 'reigel_woocommerce_checkout_fields' );
Run Code Online (Sandbox Code Playgroud)
这一切都很可爱。
但是,我似乎无法将“值”传递到数组中。它只是不出现。我想为自定义字段设置默认值,但我不知道该怎么做。:(
我在里面显示div section.每个部分有多个部分和多个子div.我动态检查下拉字段,如果它们与下拉列表中的选择不匹配,则隐藏子div.这非常有效.
但是,如果隐藏了该部分中的所有div,我现在想要隐藏整个部分.这是我的代码:
JS
if ($("section .listings").length === $("section .listing.h_group").length){
$('section').hide();
}
Run Code Online (Sandbox Code Playgroud)
HTML
<!-- this section should hide -->
<section class="groups" style="clear:both;">
<h2 class="group-name">Business Liner</h2>
<div class="listings h_group></div>
<div class="listings h_group></div>
<div class="listings h_group></div>
<div class="listings h_group></div>
</section>
<!-- This section should show -->
<section class="groups" style="clear:both;">
<h2 class="group-name">Business Liner</h2>
<div class="listings h_group></div>
<div class="listings></div>
<div class="listings h_group></div>
<div class="listings></div>
</section>
Run Code Online (Sandbox Code Playgroud)
CSS
.h_group {
display:none;
}
Run Code Online (Sandbox Code Playgroud)
代码当前在控制台中返回错误:
Uncaught TypeError: Cannot read property 'length' of null
Run Code Online (Sandbox Code Playgroud)
它似乎没有找到该部分,但我无法找出原因.我也认为如果这确实有用,它会隐藏每个部分,但我只想隐藏隐藏所有div的部分.
wordpress ×4
php ×3
ajax ×2
jquery ×2
woocommerce ×2
cart ×1
field ×1
javascript ×1
loops ×1
product ×1