function slm_handle_estore_email_body_filter($body, $payment_data, $cart_items) { global $slm_debug_logger, $wpdb; $slm_debug_logger->log_debug("WP eStore integration - checking if a license key needs to be created for this transaction."); $products_table_name = $wpdb->prefix . "wp_eStore_tbl"; $slm_data = ""; foreach ($cart_items as $current_cart_item) { $prod_id = $current_cart_item['item_number']; $retrieved_product = $wpdb->get_row("SELECT * FROM {$products_table_name} WHERE id = '{$prod_id}'", OBJECT); $package_product = eStore_is_package_product($retrieved_product); if ($package_product) { $slm_debug_logger->log_debug('Checking license key generation for package/bundle product.'); $product_ids = explode(',', $retrieved_product->product_download_url); foreach ($product_ids as $id) { $id = trim($id); $retrieved_product_for_specific_id = $wpdb->get_row("SELECT * FROM {$products_table_name} WHERE id = '{$id}'", OBJECT); $slm_data .= slm_estore_check_and_generate_key($retrieved_product_for_specific_id, $payment_data, $cart_items); } } else { $slm_debug_logger->log_debug('Checking license key generation for single item product.'); $slm_data .= slm_estore_check_and_generate_key($retrieved_product, $payment_data, $cart_items); } } $body = str_replace("{slm_data}", $slm_data, $body); return $body; }
function eStore_post_sale_retrieve_serial_key_and_update($retrieved_product, $cart_item_name = '', $qty = 1) { global $wpdb; $product_code_data = ""; $products_table_name = WP_ESTORE_PRODUCTS_TABLE_NAME; $package_product = eStore_is_package_product($retrieved_product); if ($package_product) { eStore_payment_debug('This is a packaged product. Checking if key needs to be issued for the products included in this package.', true); $product_ids = explode(',', $retrieved_product->product_download_url); if (sizeof($product_ids) > 1) { foreach ($product_ids as $id) { if (empty($id)) { continue; } $retrieved_product = $wpdb->get_row("SELECT * FROM {$products_table_name} WHERE id = '{$id}'", OBJECT); $product_code_data .= eStore_get_serial_key_for_product($retrieved_product, $retrieved_product->name, $qty); } } else { eStore_payment_debug('Error configuring the bundled product: it needs 2 or more product IDs to create a package product', false); } } else { $product_code_data .= eStore_get_serial_key_for_product($retrieved_product, $cart_item_name, $qty); } return $product_code_data; }
function eStore_check_and_generate_license_key($retrieved_product, $payment_data = '') { global $wpdb, $products_table_name; $product_license_data = ""; $package_product = eStore_is_package_product($retrieved_product); if ($package_product) { eStore_payment_debug('Checking license key generation for package product.', true); $product_ids = explode(',', $retrieved_product->product_download_url); foreach ($product_ids as $id) { $id = trim($id); $retrieved_product_for_specific_id = $wpdb->get_row("SELECT * FROM {$products_table_name} WHERE id = '{$id}'", OBJECT); $product_license_data .= eStore_check_licese_key_flag_and_generate_key($retrieved_product_for_specific_id, $payment_data); } } else { eStore_payment_debug('Checking license key generation for single product.', true); $product_license_data .= eStore_check_licese_key_flag_and_generate_key($retrieved_product, $payment_data); } return $product_license_data; }