PHP-隐藏产品价格,并禁用Woocommerce中特定产品类别的添加到购物车
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-隐藏产品价格,并禁用Woocommerce中特定产品类别的添加到购物车,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3947字,纯文字阅读大概需要6分钟。
内容图文
我正在寻找正确的代码来隐藏Woocommerce中某些特定类别的价格.
我已经有代码隐藏单个产品页面上的价格:
add_action( 'wp', 'remove_prices_based_on_category' );
function remove_prices_based_on_category() {
// On product single pages
if ( is_product() ) {
remove_product_price( get_the_ID() );
}
}
function return_custom_price( $price, $instance ) {
$price = '<span style="color:red; font-size:12px;">Call our office <strong>516.695.3110</strong> for prices.</span>';
return $price;
}
add_action( 'woocommerce_before_shop_loop_item', 'remove_product_price', 5, 1 ); // for each product on product listing page/shop page.
function remove_product_price( $product_id ) {
$product_id = get_the_ID();
$hidden_price_category_ids = array( '27419','27421' ); // Add Product Category IDs for which the product price should be hidden.
$product_cat_ids = get_the_terms( $product_id, 'product_cat' ); // Getting all categories for this product.
$cat_ids = wp_list_pluck( $product_cat_ids, 'term_id' ); // Getting all category ids for this product.
$result = array_intersect( $hidden_price_category_ids, $cat_ids ); // Will match hidden price categories with product categories and the cat id in the array.
// If a hidden price category is found
if( !empty($result) ) {
add_filter( 'woocommerce_get_price_html', 'return_custom_price', 10, 2 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
} else {
remove_filter( 'woocommerce_get_price_html', 'return_custom_price', 10, 2 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
}
}
如何为WooCommerce存档页面执行此操作?
解决方法:
您现有的代码很复杂,未完成,并且不太方便.请尝试以下操作,该方法也将适用于单个产品页面和存档页面(作为商店页面).
它处理任何种类的产品,包括可变产品及其变体.
对于定义的产品类别,它将替换价格并禁用相关产品上的“添加到购物车”按钮.
编码:
// Custom conditional function that check for specific product categories
function check_for_defined_product_categories( $product_id ) {
// HERE your Product Categories where the product price need to be hidden.
$targeted_terms = array( '27419','27421' ); // Can be term names, slugs or Ids
return has_term( $targeted_terms, 'product_cat', $product_id );
}
// Custom function that replace the price by a text
function product_price_replacement(){
return '<span style="color:red; font-size:12px;">' . sprintf( __( "Call our office %s for prices."), '<strong>516.695.3110</strong>' ) . '</span>';
}
// Replace price by a text (conditionally)
add_filter( 'woocommerce_get_price_html', 'filter_get_price_html_callback', 10, 2 );
function filter_get_price_html_callback( $price, $product ){
if( check_for_defined_product_categories( $product->get_id() ) ) {
$price = product_price_replacement();
}
return $price;
}
// Hide prices and availiability on product variations (conditionally)
add_filter( 'woocommerce_available_variation', 'filter_available_variation_callback', 10, 3 ); // for Variations
function filter_available_variation_callback( $args, $product, $variation ) {
if( check_for_defined_product_categories( $product->get_id() ) ) {
$args['price_html'] = '';
$args['availability_html'] = '';
}
return $args;
}
// Disable add to cart button (conditionally)
add_filter( 'woocommerce_variation_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
add_filter('woocommerce_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
function woocommerce_is_purchasable_filter_callback( $purchasable, $product ) {
$product_id = $product->get_parent_id() > 0 ? $product->get_parent_id() : $product->get_id();
if( check_for_defined_product_categories( $product_id ) ) {
$purchasable = false;
}
return $purchasable;
}
代码进入您的活动子主题(或活动主题)的functions.php文件中.经过测试和工作.
内容总结
以上是互联网集市为您收集整理的PHP-隐藏产品价格,并禁用Woocommerce中特定产品类别的添加到购物车全部内容,希望文章能够帮你解决PHP-隐藏产品价格,并禁用Woocommerce中特定产品类别的添加到购物车所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。