Php 在每个产品的电子商务签出上添加数量输入字段

Php 在每个产品的电子商务签出上添加数量输入字段,php,wordpress,woocommerce,checkout,product-quantity,Php,Wordpress,Woocommerce,Checkout,Product Quantity,我试图了解如何在结帐页面上添加数量输入字段,从而允许客户更改每个产品的数量 这就是我目前得到的结果: add_filter( 'woocommerce_checkout_cart_item_quantity', 'qty_and_qty_change_on_checkout', 20, 3 ); function qty_and_qty_change_on_checkout( $quantity_html, $cart_item, $cart_item_key ) { return '

我试图了解如何在结帐页面上添加数量输入字段,从而允许客户更改每个产品的数量

这就是我目前得到的结果:

add_filter( 'woocommerce_checkout_cart_item_quantity', 'qty_and_qty_change_on_checkout', 20, 3 );
function qty_and_qty_change_on_checkout( $quantity_html, $cart_item, $cart_item_key ) {

    return '<br>
    '.woocommerce_quantity_input().'
    <span class="product-quantity">
    ' . sprintf( '<b>Qty:</b> %s', $cart_item['quantity'] ) . '
    </span>';
}
Notice: Undefined index: product in /wp-content/plugins/woocommerce/includes/wc-template-functions.php on line 1670

您没有将必要的参数设置到
woocommerce\u quantity\u input()
函数中,就像在模板文件中一样…以下内容将在签出页面中显示一个输入字段,其中当前数量将替换数量字符串:

add_filter( 'woocommerce_checkout_cart_item_quantity', 'qty_input_field_on_checkout', 20, 3 );
function qty_input_field_on_checkout( $quantity_html, $cart_item, $cart_item_key ) {
    $_product = $cart_item['data'];

    if ( $_product->is_sold_individually() ) {
        $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
    } else {
        $product_quantity = woocommerce_quantity_input(
            array(
                'input_name'   => "cart[{$cart_item_key}][qty]",
                'input_value'  => $cart_item['quantity'],
                'max_value'    => $_product->get_max_purchase_quantity(),
                'min_value'    => '0',
                'product_name' => $_product->get_name(),
            ),
            $_product,
            false
        );
    }

    return '<br><span class="product-quantity"><strong>' . __( 'Qty') . ': </strong></span>' . $product_quantity;
}
add_filter('woocommerce_checkout_cart_item_quantity','quantity_input_field_on_checkout',20,3);
签出时的函数数量输入字段($quantity\u html、$cart\u item、$cart\u item\u key){
$\u产品=$cart\u项目['data'];
如果($\产品->单独销售(){
$product\U QUOTE=sprintf('1',$cart\U item\U key);
}否则{
$product\U QUOTE=WOO商业\U QUOTE\U输入(
排列(
'input_name'=>“购物车[{$cart_item_key}][qty]”,
“输入值”=>$cart\u项目[“数量”],
“最大值”=>$\u产品->获取最大采购量(),
“最小值”=>“0”,
'product\u name'=>$\u product->get\u name(),
),
$\u产品,
假的
);
}
返回“
”。(数量):。$product\u数量; }
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作

现在,这将只允许显示数量字段,但不允许更新产品数量,因为这是更复杂的事情


您没有将必要的参数设置到
woocommerce\u quantity\u input()
函数中,就像在模板文件中一样…以下内容将在签出页面中显示一个输入字段,其中当前数量将替换数量字符串:

add_filter( 'woocommerce_checkout_cart_item_quantity', 'qty_input_field_on_checkout', 20, 3 );
function qty_input_field_on_checkout( $quantity_html, $cart_item, $cart_item_key ) {
    $_product = $cart_item['data'];

    if ( $_product->is_sold_individually() ) {
        $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
    } else {
        $product_quantity = woocommerce_quantity_input(
            array(
                'input_name'   => "cart[{$cart_item_key}][qty]",
                'input_value'  => $cart_item['quantity'],
                'max_value'    => $_product->get_max_purchase_quantity(),
                'min_value'    => '0',
                'product_name' => $_product->get_name(),
            ),
            $_product,
            false
        );
    }

    return '<br><span class="product-quantity"><strong>' . __( 'Qty') . ': </strong></span>' . $product_quantity;
}
add_filter('woocommerce_checkout_cart_item_quantity','quantity_input_field_on_checkout',20,3);
签出时的函数数量输入字段($quantity\u html、$cart\u item、$cart\u item\u key){
$\u产品=$cart\u项目['data'];
如果($\产品->单独销售(){
$product\U QUOTE=sprintf('1',$cart\U item\U key);
}否则{
$product\U QUOTE=WOO商业\U QUOTE\U输入(
排列(
'input_name'=>“购物车[{$cart_item_key}][qty]”,
“输入值”=>$cart\u项目[“数量”],
“最大值”=>$\u产品->获取最大采购量(),
“最小值”=>“0”,
'product\u name'=>$\u product->get\u name(),
),
$\u产品,
假的
);
}
返回“
”。(数量):。$product\u数量; }
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作

现在,这将只允许显示数量字段,但不允许更新产品数量,因为这是更复杂的事情


谢谢你,非常感谢你的帮助。我成功地将其更改为自动更新。当数量发生更改时,如何使用AJAX将其更改为自动更新?用户提到能够实现这一点,但没有分享。非常沮丧,因为我不知所措。谢谢你,非常感谢你的帮助。我成功地将其更改为自动更新。当数量发生更改时,如何使用AJAX将其更改为自动更新?用户提到能够实现这一点,但没有分享。非常沮丧,因为我不知所措。