Wordpress Woocommerce-添加到购物车按钮和类别页面上产品列表中的数量

Wordpress Woocommerce-添加到购物车按钮和类别页面上产品列表中的数量,wordpress,function,woocommerce,Wordpress,Function,Woocommerce,我有一个特定类别页面上的自定义产品列表 看起来是这样的: 我一直在functions.php中使用下面的函数,效果很好。自上次更新WooCommerce以来,它不再工作。“添加到购物车”按钮和“数量”字段不再显示 当我检查页面的html时,我没有收到任何错误,并且数量和按钮html所在的字段是空白的 add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart

我有一个特定类别页面上的自定义产品列表

看起来是这样的:

我一直在functions.php中使用下面的函数,效果很好。自上次更新WooCommerce以来,它不再工作。“添加到购物车”按钮和“数量”字段不再显示

当我检查页面的html时,我没有收到任何错误,并且数量和按钮html所在的字段是空白的

add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );

function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {


    $term_id = get_queried_object()->term_id;
    $post_id = 'product_cat_'.$term_id;
    $wk_cat_value = get_term_meta($term_id, 'wh_meta_cat_template', true);

    // Only for this product category

    if ($wk_cat_value == 1 && is_product_category()) 

    {

        if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) 

        {
            $html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
            $html .= woocommerce_quantity_input( array(), $product, false );
            $html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
            $html .= '</form>';


        }   
         return $html;
    }


}
add_filter('woocommerce_loop_add_to_cart_link'、'quantity_input_for_woocommerce_loop_add_to_cart_link',10,2);
函数数量\u输入\u用于\u商业\u循环\u添加\u至\u购物车\u链接($html,$product){
$term\u id=get\u queryed\u object()->term\u id;
$post_id='product_cat_'。$term_id;
$wk_cat_value=get_term_meta($term_id,'wh_meta_cat_template',true);
//仅适用于此产品类别
如果($wk\u cat\u value==1&&is\u product\u category())
{
如果($product&&$product->is_type('simple')&&&$product->is_purchable()&&&$product->is_in_stock()&&&&!$product->is_selled_single())
{
$html='';
$html.=woocommerce\u quantity\u输入(数组(),$product,false);
$html.=''.esc_html($product->add_to_cart_text())。';
$html.='';
}   
返回$html;
}
}
此行是我添加到“类别”页面的复选框,用于指定当前类别是否使用自定义模板: $wk_cat_value=get_term_meta($term_id,'wh_meta_cat_template',true)

商业文件的模板版本为2.0.0。 更新版本为3.4.0

非常感谢您的建议。

找到了解决方案:

function wk_add_to_cart() {

    $term_id = get_queried_object()->term_id;
    $post_id = 'product_cat_'.$term_id;
    // $wk_cat_value is a flag added to this specific category to decide whether or not the add to cart should be added
    $wk_cat_value = get_term_meta($term_id, 'wh_meta_cat_template', true);    

    global $product;

    if ($wk_cat_value == 1 && is_product_category()) {                

        if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() )  {

        echo '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
        echo  woocommerce_quantity_input( array(), $product, false );
        echo  '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
        echo  '</form>';

       }
    }
}

add_action('woocommerce_after_shop_loop_item','wk_add_to_cart');
函数wk\u添加到\u购物车(){
$term\u id=get\u queryed\u object()->term\u id;
$post_id='product_cat_'。$term_id;
//$wk_cat_value是添加到此特定类别的标志,用于决定是否应添加到购物车
$wk_cat_value=get_term_meta($term_id,'wh_meta_cat_template',true);
全球$产品;
如果($wk\u cat\u value==1&&is\u product\u category()){
如果($product&&$product->is_type('simple')&&&$product->is_purchable()&&&$product->is_in_stock()&&&&!$product->is_selled_single()){
回声';
echo\u数量\u输入(数组(),$product,false);
echo'.esc_html($product->add_to_cart_text())。';
回声';
}
}
}
添加操作('WOOMerce'u在'u shop'u loop'u item'之后,'wk'u添加'u到'u cart');
希望能有所帮助。

找到了解决方案:

function wk_add_to_cart() {

    $term_id = get_queried_object()->term_id;
    $post_id = 'product_cat_'.$term_id;
    // $wk_cat_value is a flag added to this specific category to decide whether or not the add to cart should be added
    $wk_cat_value = get_term_meta($term_id, 'wh_meta_cat_template', true);    

    global $product;

    if ($wk_cat_value == 1 && is_product_category()) {                

        if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() )  {

        echo '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
        echo  woocommerce_quantity_input( array(), $product, false );
        echo  '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
        echo  '</form>';

       }
    }
}

add_action('woocommerce_after_shop_loop_item','wk_add_to_cart');
函数wk\u添加到\u购物车(){
$term\u id=get\u queryed\u object()->term\u id;
$post_id='product_cat_'。$term_id;
//$wk_cat_value是添加到此特定类别的标志,用于决定是否应添加到购物车
$wk_cat_value=get_term_meta($term_id,'wh_meta_cat_template',true);
全球$产品;
如果($wk\u cat\u value==1&&is\u product\u category()){
如果($product&&$product->is_type('simple')&&&$product->is_purchable()&&&$product->is_in_stock()&&&&!$product->is_selled_single()){
回声';
echo\u数量\u输入(数组(),$product,false);
echo'.esc_html($product->add_to_cart_text())。';
回声';
}
}
}
添加操作('WOOMerce'u在'u shop'u loop'u item'之后,'wk'u添加'u到'u cart');

希望能有所帮助。

添加更新前后使用的woocommerce的精确版本可能是个好主意。此外,你还应该更具体地说明“不再有效”的含义。是否有一些错误,是否会产生意外的结果,或者您的函数根本没有被调用?Michael欢呼。添加了更多信息。添加更新前后使用的woocommerce的确切版本可能是个好主意。此外,你还应该更具体地说明“不再有效”的含义。是否有一些错误,是否会产生意外的结果,或者您的函数根本没有被调用?Michael欢呼。添加了更多信息。