Skip to content

Instantly share code, notes, and snippets.

@ChromeOrange
Created July 29, 2012 18:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ChromeOrange/3200974 to your computer and use it in GitHub Desktop.
Save ChromeOrange/3200974 to your computer and use it in GitHub Desktop.
Allow certain products to be sold one per order only.
<?php
add_filter( 'woocommerce_is_sold_individually', 'cj_woocommerce_is_sold_individually', 10, 2 );
function cj_woocommerce_is_sold_individually( $value, $product ) {
$isi = get_post_meta( $product->id, '_custom_sell_individually', TRUE );
if ( $isi == 'individual' ) :
$return = true;
endif;
return $return;
}
if ( is_admin() ) :
add_action( 'woocommerce_product_options_dimensions', 'isi_write_panel');
add_action( 'woocommerce_process_product_meta', 'isi_write_panel_save' );
function isi_write_panel() {
echo '<div class="options_group">';
woocommerce_wp_select( array( 'id' => '_custom_sell_individually',
'label' => __('Sell Individually?', 'woocommerce'),
'options' => apply_filters('woocommerce_product_visibility_options',
array(
'multiple' => __('Multiple purchases allowed', 'woocommerce'),
'individual' => __('Individual Only', 'woocommerce')
)),
'description' => __('Limit the product to one per order?', 'woocommerce') ) );
echo '</div>';
}
function isi_write_panel_save( $post_id ) {
$_custom_sell_individually = esc_attr($_POST['_custom_sell_individually']);
update_post_meta($post_id, '_custom_sell_individually', $_custom_sell_individually);
}
endif;
?>
@tevyaw
Copy link

tevyaw commented Apr 22, 2015

Is this still working with the latest versions of WooCommerce? Would be nice as a simple plugin....

EDIT: I turned it into a plugin and tried it with WC 2.3.8 and it seems to work. It strangely has 2 settings: a checkbox under Inventory and drop-down under Shipping. Only the shipping one seems to have any effect (but then, I'm not managing inventory on this site). But it does work. Any reason you don't put this in the WordPress.org repository?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment