By default, whenever a client purchases a licensed product, a single key is generated and saved within the account. This can be changed through the filter woo_sl/generate_licence_keys_count. Multiple keys can be generated in a row, or none.
The example bellow change the default single key generator to all allowed for current licence group:
add_action('woo_sl/generate_licence_keys_count', 'woo_sl_generate_licence_keys_count', 10, 4); function woo_sl_generate_licence_keys_count($generate_keys_count, $order_id, $order_item_id, $license_group_id) { global $WOO_SL_API; $_woo_sl = $WOO_SL_API->functions->get_order_item_meta($order_item_id, '_woo_sl', TRUE); $group_max_allowed_keys = $_woo_sl['max_keys'][$license_group_id]; return $group_max_allowed_keys; }
If the order contain multiple quantity of an item, the user will be able to generate a maximum_group_licence_keys multiplied with quantity. So accordingly the code become something like this:
add_action('woo_sl/generate_licence_keys_count', 'woo_sl_generate_licence_keys_count', 10, 4); function woo_sl_generate_licence_keys_count($generate_keys_count, $order_id, $order_item_id, $license_group_id) { global $WOO_SL_API; $_woo_sl = $WOO_SL_API->functions->get_order_item_meta($order_item_id, '_woo_sl', TRUE); $group_max_allowed_keys = $_woo_sl['max_keys'][$license_group_id]; $order_data = new WC_Order($order_id); $order_products = $order_data->get_items(); $order_item_data = $order_products[$order_item_id]; $quantity = $order_item_data['qty']; return ($quantity * $group_max_allowed_keys); }
Category: News, Featured