我试图在产品页面的Woocommerce中添加“立即购买”按钮,因此有两个按钮:
我仍然希望添加到购物车,使其正常工作。
我怎样才能做到这一点?非常感谢。
http://wordpress.org/extend/plugins/woocommerce/
经过多次搜索,我很惊讶这不是标准的东西。这是我的解决方案:
或者使用类似“woocommerce\u single\u product\u summary”的钩子
或者复制wp-Content/plugins/wooCommerce/tem板/单品/加载到购物车/simple.php到您的子主题,如:wp-Content/主题/子主题/wooCommerce/单品/加载到购物车/simple.php
编辑文件,并在要显示按钮的位置添加以下代码:
<div class="express-checkout-wrapper">
<a id="dc_express_checkout" href="/checkout/?add-to-cart=<?php echo get_the_ID(); ?>">
Purchase
</a>
</div>
现在唯一的问题是,该按钮将带您结帐并添加正确的产品,但如果您更改它,则没有正确的数量,因此我在页脚中排队的custom.js文件中使用了js:
// Add and change quantity to express checkout button when the quantity is updated
if($('.cart .qty').length){
var originalUrl = $('#dc_express_checkout').attr('href');
$('.cart .qty').change(function(){
var url = originalUrl + '&quantity=' + $(this).val();
$('#dc_express_checkout').attr('href', url);
});
}
您可以更改网址:
href="/checkout/?add-to-cart=<?php echo get_the_ID(); ?>"
到:
href="/cart/?add-to-cart=<?php echo get_the_ID(); ?>"
如果您希望按钮指向购物车而不是结账页面。
我找到了这篇博文,设法解决了这个问题http://samplacette.com/skip-shopping-cart-in-woocommerce/.
如果其他人发现他们正在努力实现这一点,我就是这样做的(可能不是最好的解决方案,但它对我有效):
我把下面的文字复制到我的主题中functions.php
/** * Set cart item quantity action *
* Only works for simple products (with integer IDs, no colors etc) *
* @access public
* @return void */
function woocommerce_set_cart_qty_action() {
global $woocommerce;
foreach ($_REQUEST as $key => $quantity) {
// only allow integer quantities
if (! is_numeric($quantity)) continue;
// attempt to extract product ID from query string key
$update_directive_bits = preg_split('/^set-cart-qty_/', $key);
if (count($update_directive_bits) >= 2 and is_numeric($update_directive_bits[1])) {
$product_id = (int) $update_directive_bits[1];
$cart_id = $woocommerce->cart->generate_cart_id($product_id);
// See if this product and its options is already in the cart
$cart_item_key = $woocommerce->cart->find_product_in_cart( $cart_id );
// If cart_item_key is set, the item is already in the cart
if ( $cart_item_key ) {
$woocommerce->cart->set_quantity($cart_item_key, $quantity);
} else {
// Add the product to the cart
$woocommerce->cart->add_to_cart($product_id, $quantity);
}
}
}
}
add_action( 'init', 'woocommerce_set_cart_qty_action' );
然后,我将theme/woocommerce/single product/add to cart/simple.php(确保你没有对插件文件进行MIDI,所以复制并粘贴到你的主题文件到woocommerce文件夹中)修改为以下内容(注意,我已经从我的代码中删除了数量输入,因此如果你需要,请确保重新编写代码以使其正常工作):
<form class="cart single-product" method="post" enctype='multipart/form-data'>
<?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->id ); ?>" />
<button type="submit" class="single_add_to_cart_button button alt cart-buttton add-to-cart"><?php echo $product->single_add_to_cart_text(); ?></button>
<?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
</form>
<form class="cart single-product" method="post" enctype='multipart/form-data' action="/checkout?set-cart-qty_<?php echo $product->id;?>=1">
<button type="submit" class="single_add_to_cart_button button alt cart-buttton buy-now">Buy Now</button>
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->id ); ?>" />
</form>
我在现有的“添加到购物车”按钮旁边添加了另一个按钮,但分离了表单。这篇博文提到你可以添加一个超链接,但是上面提到的方法对我来说很有用,因为我需要定制页面(稍微冗长一些)
来自博客:
使用说明:
创建一个带有如下查询字符串参数的超链接:?set-cart-qty_=其中是产品的数字ID(类似于“167”),是
将用户发送到购物车中带有ID为"167"的产品的一个项目的结账的示例URL:
http://my.website.com/checkout?set-购物车数量=1
我希望以上内容能帮助那些和我有类似问题的人。
我正在尝试在我的产品页面中设置“添加到购物车”和“立即购买”按钮: null 添加上述代码后,add-to-cart还将链接重定向到签出页面。如何在产品页面中实现这两个按钮?
如何更改代码以使其只适用于已定义的产品类别?
如何在Woocommerce购物车页面中的购物车项目名称后添加产品ID? 我知道我需要先不返回,因为这样会把我从函数中拉出来,但我很好奇我该如何去做这件事。
我正在工作的一个woocommerce主题,我需要隐藏添加到购物车按钮的产品有0作为价格,因为这些产品可能只是查询,而不是添加到购物车。我已经成功地隐藏了‘添加到购物车’按钮在产品页面,然而,我有一个困难的时间这样做在商店页面/类别页面。 下面是我的代码,用于过滤add to cart以及更改默认的“free!”留言。 } 有什么建议吗?我想看看我能不能用CSS把它隐藏起来...
我经营一家Woocommerce商店,该商店也提供免费产品(_常规价格=0)。客户必须选择数量并将其添加到购物车中,然后下订单才能收到产品。但这并不是Woocommerce的工作原理,它隐藏了所有价格为0的产品的“添加到购物车”链接。并且不会在购物车页面中显示它们。有没有解决这个问题的办法?非常感谢。
我正在尝试添加一个自定义链接按钮,导致联系人页面-在第一个如果条件,显示“联系我们”文本与自定义URL在按钮上,而不是“添加到篮子”按钮。