X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-send_coupon.php;h=76324a4dad9354ccf84f50259319ebf544102a5e;hb=0f3a135204757cc8750262871c8e62c42300acb4;hp=2e4d66a2fcd9ab44b721d01aeb34b033c1f02a7b;hpb=03486c08011d4c233e2455c8e5335ecc0818333f;p=mailer.git diff --git a/inc/modules/admin/what-send_coupon.php b/inc/modules/admin/what-send_coupon.php index 2e4d66a2fc..76324a4dad 100644 --- a/inc/modules/admin/what-send_coupon.php +++ b/inc/modules/admin/what-send_coupon.php @@ -49,11 +49,96 @@ if (isFormSent()) { if (!isPostRequestParameterSet('points')) { // Points not entered displayMessage('{--ADMIN_SEND_COUPON_POINTS_NOT_ENTERED--}'); - } elseif (!isPostRequestParameterSet('description')) { + } elseif (!isPostRequestParameterSet('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(postRequestParameter('points')), + postRequestParameter('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(postRequestParameter('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(postRequestParameter('points')), + 'coupon_description' => postRequestParameter('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