Woocommerce:如何在Checkout页面上删除产品系列?

时间:2017-05-29 11:54:05

标签: woocommerce

与购物车一样,我怎样才能在Checkout页面中删除产品' x'链接?

有没有勾到那个?

感谢

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,并且找不到在Google上解决问题的方法。所以我自己尝试并找到了这个解决方案:

  1. 覆盖主题结帐页面上的woocommerce订单评论:

    • 在主题中创建一个名为' woocommerce'的文件夹,然后创建一个名为' checkout'的子文件夹。在那里。
    • 从您的新结帐文件夹中复制woocommerce文件夹(plugins / woocommerce / templates / checkout)中的review-order.php文件。 这个新的review-order.php文件将覆盖默认模板。
  2. 在结帐页面上为每件商品添加删除x按钮:

  3. 在新的review-order.php (yourtheme / woocommerce / checkout)

    • 在商店桌子的头部添加<th class="product-remove"><?php _e( 'Remove', 'woocommerce' ); ?></th>

    • 从默认的cart.php文件(l.54)中复制<td class="product-remove"> <?php echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf( '<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">&times;</a>', esc_url( WC()->cart->get_remove_url( $cart_item_key ) ), __( 'Remove this item', 'woocommerce' ), esc_attr( $product_id ), esc_attr( $_product->get_sku() ) ), $cart_item_key ); ?> </td> (plugins / woocommerce / templates / cart)

    • 将其粘贴在商店桌子的正文中。

    我希望这会有所帮助,因为这是我在StackOF上的第一个答案, 它已经完成了我的工作,但它可能不是最好的方法。

    期待新的答案;)

答案 1 :(得分:0)

我没有足够的代表对此发表评论,但是当有人在2018年11月偶然发现woocommerce v3.3.0的这篇文章时,jaks的回答使我占了90%的位置。

您还需要在foreach语句下添加以下行(也来自cart.php),以便定义$ product_id

$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

所以我们现在作为foreach声明的一部分

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
        $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

这将停止页面上的任何产品错误

答案 2 :(得分:0)

函数ns_woocommerce_checkout_remove_item链接到woocommerce_cart_item_name过滤器,该过滤器允许更改输出并在产品项名称周围添加链接(十字图标)。我们添加的链接基于WC()-> cart-> get_remove_url($ cart_item_key)函数,该函数为指定的购物车商品密钥创建一个URL。

将以下代码添加到主题的functions.php文件中。

function ns_woocommerce_checkout_remove_item( $product_name, $cart_item, $cart_item_key ) {
if ( is_checkout() ) {
    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

    $remove_link = apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
        '<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">×</a>',
        esc_url( WC()->cart->get_remove_url( $cart_item_key ) ),
        __( 'Remove this item', 'woocommerce' ),
        esc_attr( $product_id ),
        esc_attr( $_product->get_sku() )
    ), $cart_item_key );

    return '<span>' . $remove_link . '</span> <span>' . $product_name . '</span>';
}

return $product_name;
}
add_filter( 'woocommerce_cart_item_name', 'ns_woocommerce_checkout_remove_item', 10, 3 );