PageRenderTime 27ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-content/plugins/form-maker/frontend/models/FMModelVerify_email.php

https://gitlab.com/hunt9310/ras
PHP | 119 lines | 86 code | 9 blank | 24 comment | 7 complexity | c9dd1fbc77587685e907010d7632c993 MD5 | raw file
  1. <?php
  2. class FMModelVerify_email {
  3. ////////////////////////////////////////////////////////////////////////////////////////
  4. // Events //
  5. ////////////////////////////////////////////////////////////////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////////////////////
  7. // Constants //
  8. ////////////////////////////////////////////////////////////////////////////////////////
  9. ////////////////////////////////////////////////////////////////////////////////////////
  10. // Variables //
  11. ////////////////////////////////////////////////////////////////////////////////////////
  12. ////////////////////////////////////////////////////////////////////////////////////////
  13. // Constructor & Destructor //
  14. ////////////////////////////////////////////////////////////////////////////////////////
  15. public function __construct() {
  16. }
  17. ////////////////////////////////////////////////////////////////////////////////////////
  18. // Public Methods //
  19. ////////////////////////////////////////////////////////////////////////////////////////
  20. function setValidation($gid, $md5, $email) {
  21. global $wpdb;
  22. $query = $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."formmaker_submits WHERE group_id='%d' AND element_label= 'verifyInfo' AND element_value REGEXP 'verified'", $gid);
  23. $verified_row = $wpdb->get_row($query);
  24. if($verified_row)
  25. $view = __('Your email address is already verified.', 'form_maker');
  26. else
  27. {
  28. $query = $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."formmaker_submits WHERE group_id='%d' AND element_label REGEXP 'verifyInfo' AND element_value NOT REGEXP 'verified'", $gid);
  29. $rows = $wpdb->get_results($query);
  30. if (!$rows)
  31. return false;
  32. $view = '';
  33. foreach($rows as $row){
  34. $verifyInfo = explode('**',$row->element_value);
  35. $key = $verifyInfo[0];
  36. $expHour = $verifyInfo[1];
  37. $recipiend = $verifyInfo[2];
  38. if($recipiend == $email) {
  39. $date = strtotime($row->date);
  40. if($key === $md5){
  41. if($expHour > 0){
  42. $now = time();
  43. $hourInterval = floor(($now - $date)/3600); //return hour
  44. if ($hourInterval <= $expHour) {
  45. $wpdb->update(
  46. $wpdb->prefix."formmaker_submits",
  47. array(
  48. 'element_value' => 'verified**'.$recipiend,
  49. 'element_label' => 'verifyInfo'
  50. ),
  51. array(
  52. 'group_id' => $gid ,
  53. 'element_label' => 'verifyInfo@'.$recipiend
  54. ),
  55. array(
  56. '%s',
  57. '%s'
  58. ),
  59. array( '%d',
  60. '%s'
  61. )
  62. );
  63. $view = __('Your email has been successfully verified.', 'form_maker');
  64. }
  65. else
  66. $view = __('Your email verification has timed out.', 'form_maker'); // 0 = time expired
  67. }
  68. else
  69. {
  70. $wpdb->update(
  71. $wpdb->prefix."formmaker_submits",
  72. array(
  73. 'element_value' => 'verified**'.$recipiend,
  74. 'element_label' => 'verifyInfo'
  75. ),
  76. array(
  77. 'group_id' => $gid ,
  78. 'element_label' => 'verifyInfo@'.$recipiend
  79. ),
  80. array(
  81. '%s',
  82. '%s'
  83. ),
  84. array( '%d',
  85. '%s'
  86. )
  87. );
  88. $view = __('Your email has been successfully verified.', 'form_maker');
  89. }
  90. }
  91. else
  92. $view = __('Verification link is invalid.', 'form_maker'); //wrong code
  93. break;
  94. }
  95. else
  96. continue;
  97. }
  98. }
  99. return $view;
  100. }
  101. ////////////////////////////////////////////////////////////////////////////////////////
  102. // Getters & Setters //
  103. ////////////////////////////////////////////////////////////////////////////////////////
  104. ////////////////////////////////////////////////////////////////////////////////////////
  105. // Private Methods //
  106. ////////////////////////////////////////////////////////////////////////////////////////
  107. ////////////////////////////////////////////////////////////////////////////////////////
  108. // Listeners //
  109. ////////////////////////////////////////////////////////////////////////////////////////
  110. }