X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-send_coupon.php;h=262a4c8c73eaa4021217515f8f3929032fef0435;hp=2e4d66a2fcd9ab44b721d01aeb34b033c1f02a7b;hb=e3934352dffa6eb9da59a137ae1a9414e5b4d80b;hpb=03486c08011d4c233e2455c8e5335ecc0818333f diff --git a/inc/modules/admin/what-send_coupon.php b/inc/modules/admin/what-send_coupon.php index 2e4d66a2fc..262a4c8c73 100644 --- a/inc/modules/admin/what-send_coupon.php +++ b/inc/modules/admin/what-send_coupon.php @@ -17,7 +17,7 @@ * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * * Copyright (c) 2009 - 2011 by Mailer Developer Team * - * For more information visit: http://www.mxchange.org * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -46,14 +46,99 @@ addYouAreHereLink('admin', __FILE__); // Is the form sent? if (isFormSent()) { // Are all required fields set? - if (!isPostRequestParameterSet('points')) { + if (!isPostRequestElementSet('points')) { // Points not entered displayMessage('{--ADMIN_SEND_COUPON_POINTS_NOT_ENTERED--}'); - } elseif (!isPostRequestParameterSet('description')) { + } elseif (!isPostRequestElementSet('coupon_description')) { // Description not entered displayMessage('{--ADMIN_SEND_COUPON_DESCRIPTION_NOT_ENTERED--}'); } else { // All fields are set, so we can start looking for users who wants to receive coupons + $result = SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND `receiving_coupons`='Y' ORDER BY `userid` ASC", + __FILE__, __LINE__); + + // Do we have entries left? + if (SQL_NUMROWS($result) > 0) { + // Convert timestamp selections + $expirationTime = time() + createEpocheTimeFromSelections('coupon_default_time', postRequestArray()); + + // Insert coupon data + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_coupon_data` (`coupon_expired`,`total_created`,`points`,`coupon_description`) VALUES ('{%%pipe,SQL_EPOCHE_TO_TIMESTAMP=%s%%}', %s,%s,'%s')", + array( + $expirationTime, + SQL_NUMROWS($result), + bigintval(postRequestElement('points')), + postRequestElement('coupon_description') + ), __FILE__, __LINE__ + ); + + // Get the insert id from the table + $couponId = SQL_INSERTID(); + + // Load entry + while (list($userid) = SQL_FETCHROW($result)) { + // By default no code is unique + $isUnique = false; + $couponCode = ''; + + // Look for a unique id + while (!$isUnique) { + /** + * Add a coupon for this user, first we need to create a + * table-unique "id". The function generatePassword() can do + * this job for us but we want to exclude some characters. + */ + $couponCode = generatePassword(30, array('-','+','_','/','.')); + + // Is it really unique? + $isUnique = (countSumTotalData($couponCode, 'user_coupons', 'id', 'coupon_code', true) == 0); + } // END - while + + // The above loop should always set $couponCode, so we can now insert it + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_coupons` (`coupon_id`,`userid`,`coupon_code`) VALUES (%s,%s,'%s')", + array($couponId, $userid, $couponCode), __FILE__, __LINE__); + + // Fill array with all required data + $content = array( + 'coupon_id' => $couponId, + 'userid' => $userid, + 'points' => bigintval(postRequestElement('points')), + 'coupon_code' => $couponCode, + 'coupon_expired' => generateDateTime($expirationTime, '0') + ); + + // Load member email template + $mailText = loadEmailTemplate('member_coupon_code', $content, $userid); + + // And deliver it + sendEmail($userid, '{--MEMBER_COUPON_SUBJECT--}', $mailText); + + // Rember this user for the admin email + $adminUserids[] = $userid; + } // END - while + + // Prepare content for template + $content = array( + 'userids' => implode(',', $adminUserids), + 'userid_count' => count($adminUserids), + 'coupon_id' => $couponId, + 'points' => bigintval(postRequestElement('points')), + 'coupon_description' => postRequestElement('coupon_description'), + 'coupon_expired' => generateDateTime($expirationTime, '0') + ); + + // Send admin notification + sendAdminNotification('{--ADMIN_COUPON_SUBJECT--}', 'admin_coupon_code', $content); + + // Coupon has been sent + displayMessage('{--ADMIN_SEND_COUPON_DONE--}'); + } else { + // No user was found + displayMessage('{--ADMIN_SEND_COUPON_USER_404--}'); + } + + // Free result + SQL_FREERESULT($result); } } else { // Prepare some template data