WooCommerce:复选框有条件地禁用相关产品

< 1 min read

您可以通过以下方法在产品编辑页面中显示“复选框”,以便在选中该产品时隐藏“相关产品”部分。您也可以重复使用此方法以相同的方式隐藏其他部分-例如,在某些情况下,您可能需要隐藏产品标签或特色图片。

仿牌独立站出海专家


// -----------------------------------------
// 1. Add new checkbox product edit page
  
add_action( 'woocommerce_product_options_general_product_data', 'bbloomer_add_related_checkbox_products' );        
  
function bbloomer_add_related_checkbox_products() {           
woocommerce_wp_checkbox( array( 
   'id' => 'hide_related', 
   'class' => '', 
   'label' => 'Hide Related Products'
   ) 
);      
}
  
// -----------------------------------------
// 2. Save checkbox into custom field
  
add_action( 'save_post_product', 'bbloomer_save_related_checkbox_products' );
  
function bbloomer_save_related_checkbox_products( $product_id ) {
   global $pagenow, $typenow;
   if ( 'post.php' !== $pagenow || 'product' !== $typenow ) return;
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    if ( isset( $_POST['hide_related'] ) ) {
      update_post_meta( $product_id, 'hide_related', $_POST['hide_related'] );
    } else delete_post_meta( $product_id, 'hide_related' );
}
  
// -----------------------------------------
// 3. Hide related products @ single product page
  
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_hide_related_checkbox_products', 1 );
  
function bbloomer_hide_related_checkbox_products() {
    global $product;
    if ( ! empty ( get_post_meta( $product->get_id(), 'hide_related', true ) ) ) {
        remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
    }
}