Answers.Body: <p>This is hard to answer without more details, such as your CiviCRM version and CMS type.</p>
  
  <p>If your CMS supports it - I think the easiest way to handle this is to create a separate membership page for renewals, and create a membership status for folks within three months of renewal.  Control access to that page with <a href="https://wiki.civicrm.org/confluence/display/CRMDOC/CiviMember+Roles+Sync" rel="nofollow">CiviMember Role Sync</a> (for Drupal) or <a href="https://wordpress.org/plugins/civicrm-wp-member-sync/" rel="nofollow">CiviCRM WP Member Sync</a> (WordPress).</p>
  
  <p>If none of that's an option, and you feel comfortable writing code (or know someone who can do it for you), you can use <a href="https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_validateForm" rel="nofollow">hook_civicrm_validateForm()</a> to have the membership fail validation when membership end date falls outside of a given range.</p>
  
  <p>Of course, the simplest answer - explanatory text telling people not to renew if it's not their time - shouldn't be overlooked.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-20T18:13:19.300Z
Answers.LastActivityDate: 2016-08-20T18:13:19.300Z
Answers.UserDisplayName: Jon G - Megaphone Tech
Answers.Body: <p>An extension (always bundle code in an extension) - can be written to do something  like:</p>
  
  <p>hook_contribution_post: pull up contact's memberships - if membership did not need to be renewed (examine dates) - then record $ as a donation instead - email the contact about this - and reset the membership dates to where they were;</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-05T14:34:00.473Z
Answers.LastActivityDate: 2016-09-05T14:34:00.473Z
Answers.UserDisplayName: KarinG - Semper IT
Body: <p>I have configured a one year fixed membership type. The membership renewal period has been fixed 3 month before the end of the current year.</p>
  
  <p>When a member fills up the membership signup form, his membership is automatically renewed for one year, even if is not the renewal period.</p>
  
  <p>Thus, if a member filled up several times the sign up form, one year is added to his membership time.</p>
  
  <p>Is it possible to force membership only for the current year, except during the renewal period which include the next year?</p>
  
  <p>Thank you.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-12-15T16:00:04.887Z
Comments.Text: I have the same problem : Members have to complete their membership with some custom information which may be modified afterwords : each time they modify them, they get a new membership year (too easy !). From my point of view, it is a design issue : this should not happen until one enters the new renewig period. A good way to solve that could be via a Membership Status, but requires that the renewal start date can be specified as a Status start event (which is not currently the case). But I am not a programmer.
  But I am very interested too if someone has a suggestion.
Comments.UserDisplayName: Jacques-Marie Moranne
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-10-24T14:31:16.733Z
Comments.Text: Would be interested to know, if anything has changed/improved since this question was posted. Having the same problem: Renewal of a membership shall only be possible for exactly one prolonging period. A further renewal option shall only be available, when there is no prolonged period which has not yet begun.
Comments.UserDisplayName: Joachim
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-04-12T12:57:38.683Z
Comments.Text: I am having the same issue. People should be able to sign up for several memberships (of different or same types), but if they fill out the signup form, their current membership is renewed, instead of a new one being created.
Comments.UserDisplayName: emma
Tags: <civimember>
Title: Membership signup when already a member
ThreadText: # Membership signup when already a member
  
  (Asked by: username_0 on 2016-08-20)
  
  I have configured a one year fixed membership type. The membership renewal period has been fixed 3 month before the end of the current year.
  
  When a member fills up the membership signup form, his membership is automatically renewed for one year, even if is not the renewal period.
  
  Thus, if a member filled up several times the sign up form, one year is added to his membership time.
  
  Is it possible to force membership only for the current year, except during the renewal period which include the next year?
  
  Thank you.
  
  **Tags:** civimember
  
  > **Comments:**
  > **username_1**: I have the same problem : Members have to complete their membership with some custom information which may be modified afterwords : each time they modify them, they get a new membership year (too easy !). From my point of view, it is a design issue : this should not happen until one enters the new renewig period. A good way to solve that could be via a Membership Status, but requires that the renewal start date can be specified as a Status start event (which is not currently the case). But I am not a programmer. But I am very interested too if someone has a suggestion.  
  > **username_2**: Would be interested to know, if anything has changed/improved since this question was posted. Having the same problem: Renewal of a membership shall only be possible for exactly one prolonging period. A further renewal option shall only be available, when there is no prolonged period which has not yet begun.  
  > **username_3**: I am having the same issue. People should be able to sign up for several memberships (of different or same types), but if they fill out the signup form, their current membership is renewed, instead of a new one being created.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_4 on 2016-08-20. Score: 1
  
  This is hard to answer without more details, such as your CiviCRM version and CMS type.
  
  If your CMS supports it - I think the easiest way to handle this is to create a separate membership page for renewals, and create a membership status for folks within three months of renewal. Control access to that page with [CiviMember Role Sync](https://wiki.civicrm.org/confluence/display/CRMDOC/CiviMember+Roles+Sync) (for Drupal) or [CiviCRM WP Member Sync](https://wordpress.org/plugins/civicrm-wp-member-sync/) (WordPress).
  
  If none of that's an option, and you feel comfortable writing code (or know someone who can do it for you), you can use [hook\_civicrm\_validateForm()](https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_validateForm) to have the membership fail validation when membership end date falls outside of a given range.
  
  Of course, the simplest answer - explanatory text telling people not to renew if it's not their time - shouldn't be overlooked.
  
  
  ---
  
  ### Answer by username_5 on 2016-09-05. Score: 0
  
  An extension (always bundle code in an extension) - can be written to do something like:
  
  hook\_contribution\_post: pull up contact's memberships - if membership did not need to be renewed (examine dates) - then record $ as a donation instead - email the contact about this - and reset the membership dates to where they were;
  
  
  ---
  
  