Paid Subscriptions expire, usergroup reverts back, but member still shows as upgraded

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • oldford
    Member
    • Jul 2003
    • 85

    Paid Subscriptions expire, usergroup reverts back, but member still shows as upgraded

    I'm having a problem with expiring subscriptions (vb 3.8). When a paid subscription expires the member's usergroup reverts back to a standard member, as it should. But the member still shows on the forum as being the upgraded member. (I have a special User Rank for this upgraded group)

    I can clear it out by manually running "Update User Titles and Ranks" in the Admin CP "Maintenance" section.

    This used to update by itself, but no longer. Not sure exactly how long it's been not working correctly, but it did work correctly for years prior to this.

    Thanks for any suggestions!
  • Trevor Hannant
    vBulletin Support
    • Aug 2002
    • 24358
    • 5.7.X

    #2
    To troubleshoot this, first download a fresh copy of the vBulletin ZIP file from the Members Area then reupload all the original vB non-image files (except install.php). Make sure you upload these in ASCII format and overwrite the ones on the server. Also be sure to upload the admincp files to whichever directory you have set in your config.php file. Then run 'Suspect File Versions' in Diagnostics to make sure you have all the original files for your version and that none show 'File does not contain expected contents':

    Admin CP -> Maintenance -> Diagnostics -> Suspect File Versions

    [Note: In some cases you may also need to remove any of the listed .xml files in the includes/xml directory.]

    Next, disable all plugins.Note: To temporarily disable the plugin system, edit config.php and add this line right under <?php:

    define('DISABLE_HOOKS', true);

    Then if you still have this problem, create a new style and choose no parent style. This will force it to use the default templates. Finally empty your browser cache, close all browser windows then try again. Make sure you change to the new style and view your forums with it.

    Do you have the same problem?
    Vote for:

    - Admin Settable Paid Subscription Reminder Timeframe (vB6)
    - Add Admin ability to auto-subscribe users to specific channel(s) (vB6)

    Comment

    • Simon Lloyd
      Senior Member
      • Apr 2008
      • 610
      • 3.7.x

      #3
      To go along with Trevors suggestion, you might want to check your footer template, if you've modified it it may be missing something that initiates the cron jobs, the contents of the footer template should look exactly like this
      HTML Code:
      $ad_location[ad_footer_start]
      <br />
      <div class="smallfont" align="center">$vbphrase[all_times_are_gmt_x_time_now_is_y]</div>
      <br />
      $spacer_close
      <!-- /content area table -->
      <form action="$vboptions[forumhome].php" method="get" style="clear:$stylevar[left]">
      <table cellpadding="$stylevar[cellpadding]" cellspacing="0" border="0" width="$stylevar[outertablewidth]" class="page" align="center">
      <tr>
       <if condition="$show['quickchooser']">
        <td class="tfoot">
         <select name="styleid" onchange="switch_id(this, 'style')">
          <optgroup label="$vbphrase[quick_style_chooser]">
           $quickchooserbits
          </optgroup>
         </select>
        </td>
       </if>
       <if condition="$show['languagechooser']">
        <td class="tfoot">
         <select name="langid" onchange="switch_id(this, 'lang')">
          <optgroup label="$vbphrase[quick_language_chooser]">
           $languagechooserbits
          </optgroup>
         </select>
        </td>
       </if>
       <td class="tfoot" align="$stylevar[right]" width="100%">
        <div class="smallfont">
         <strong>
          <if condition="$show['contactus']"><a href="$vboptions[contactuslink]" rel="nofollow" accesskey="9">$vbphrase[contact_us]</a> -</if>
          <if condition="$vboptions['hometitle']"><a href="$vboptions[homeurl]">$vboptions[hometitle]</a> -</if>
          <if condition="$show['admincplink']"><a href="$admincpdir/index.php$session[sessionurl_q]">$vbphrase[admin]</a> -</if>
          <if condition="$show['modcplink']"><a href="$modcpdir/index.php$session[sessionurl_q]">$vbphrase[mod]</a> -</if>
          <if condition="$vboptions['archiveenabled']"><a href="archive/index.php">$vbphrase[archive]</a> -</if>
          $template_hook[footer_links]
          <if condition="$vboptions[privacyurl]"><a href="$vboptions[privacyurl]">$vbphrase[privacy_statement]</a> -</if>
          <if condition="$vboptions[tosurl]"><a href="$vboptions[tosurl]">$vbphrase[terms_of_service]</a> -</if>
          <a href="#top" onclick="self.scrollTo(0, 0); return false;">$vbphrase[top]</a>
         </strong>
        </div>
       </td>
      </tr>
      </table>
      <br />
      <div align="center">
       <div class="smallfont" align="center">
       <!-- Do not remove this copyright notice -->
       $vbphrase[powered_by_vbulletin]
       <!-- Do not remove this copyright notice -->
       </div>
       <div class="smallfont" align="center">
       <!-- Do not remove cronimage or your scheduled tasks will cease to function -->
       $cronimage
       <!-- Do not remove cronimage or your scheduled tasks will cease to function -->
       $vboptions[copyrighttext]
       </div>
      </div>
      </form>
      $ad_location[ad_footer_end]
      <if condition="$show['dst_correction']">
      <!-- auto DST correction code -->
      <form action="profile.php?do=dst" method="post" name="dstform">
       <input type="hidden" name="s" value="$session[sessionhash]" />
       <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
       <input type="hidden" name="do" value="dst" />
      </form>
      <script type="text/javascript">
      <!--
       var tzOffset = $bbuserinfo[timezoneoffset] + $bbuserinfo[dstonoff];
       var utcOffset = new Date().getTimezoneOffset() / 60;
       if (Math.abs(tzOffset + utcOffset) == 1)
       { // Dst offset is 1 so its changed
        document.forms.dstform.submit();
       }
      //-->
      </script>
      <!-- / auto DST correction code -->
      </if>
      <script type="text/javascript">
      <!--
       // Main vBulletin Javascript Initialization
       vBulletin_init();
      //-->
      </script>
      Kind regards,
      Simon
      Microsoft Office Discussion

      Comment

      • oldford
        Member
        • Jul 2003
        • 85

        #4
        Thanks Simon. My footer doesn't look exactly like that because it's customized, but I do still have the cronimage. Also, the cron is running because my members revert back to their old usergroups as they should. But what isn't happening is their profiles still show incorrectly. They don't get updated so I have to manually run "Update User Titles and Ranks".

        Is there supposed to be a scheduled task for "Update User Titles and Ranks"? There isn't one set in my "Scheduled Task Manager"

        Comment

        • Trevor Hannant
          vBulletin Support
          • Aug 2002
          • 24358
          • 5.7.X

          #5
          It should set the usertitle based on their new usergroup etc. as part of the subscription ending process. From includes/class_paid_subscriptions:

          Code:
                      if (($sub['nusergroupid'] > 0 AND $user['customtitle'] == 0) OR $reset_title)
                      { // they need a default title
                          $usergroup = $this->registry->db->query_first_slave("
                              SELECT usertitle
                              FROM " . TABLE_PREFIX . "usergroup
                              WHERE usergroupid = $user[pusergroupid]
                          ");
                          if (empty($usergroup['usertitle']))
                          { // should be a title based on minposts it seems then
                              $usergroup = $this->registry->db->query_first_slave("
                                  SELECT title AS usertitle
                                  FROM " . TABLE_PREFIX . "usertitle
                                  WHERE minposts <= $user[posts]
                                  ORDER BY minposts DESC
                              ");
                          }
          
                          if ($user['isbanned'])
                          {
                              $update_userban = true;
                              $userbansql['customtitle'] = 0;
                              $userbansql['usertitle'] = $usergroup['usertitle'];
                          }
                          else
                          {
                              $userdm->set('customtitle', 0);
                              $userdm->set('usertitle', $usergroup['usertitle']);
                          }
                      }
          Did you follow my steps in post 2?
          Vote for:

          - Admin Settable Paid Subscription Reminder Timeframe (vB6)
          - Add Admin ability to auto-subscribe users to specific channel(s) (vB6)

          Comment

          widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
          Working...