Manually upgrading members plans

Post author
Josef Eines

Hi, is it possible to manually upgrade a member to paid plan without them paying in ms dashboard?

Comments

16 comments

  • Comment author
    Duncan Hamra
    • Official comment

    Update - It IS possible to manually change a member to paid plan 🎉 https://docs.memberstack.com/hc/en-us/articles/7421781379099-How-to-Change-a-Member-s-Plan

  • Comment author
    Julian Galluzzo

    I dont think so but you can probably make a coupon code in stripe for 100% off and give that to them!

    0
  • Comment author
    Yannick Caron

    What's your goal? You could also just create a free plan with the same amount of access and assign it to them manually

    0
  • Comment author
    Josef Eines

    We have a form where people can submit their portfolios. We would like FREE users to submit this form only once, when they submit form once we remove the form, and tell them to upgrade.

    When they upgrade, they can submit the form unlimitted times.

    0
  • Comment author
    Julian Galluzzo

    Also a great option, but it would be a pain if you have complex access and need to assign the plan to a million different things

    0
  • Comment author
    Josef Eines

    So basically we get the member plan (FREE/PAID) We check how many times the form has been submitted with JS

    We save that in local storage (For now)

    // Define the maximum number of form submissions for free members
    const MAX_SUBMISSIONS = 3;
    
    // Get the form element and the two div elements
    const form = document.getElementById('wf-form-new-portfolio');
    const div578 = document.querySelector('.div-block-578');
    const div610 = document.querySelector('.div-block-610');
    
    // Check if the current member is free
    window.$memberstackDom.getCurrentMember().then((member) => {
      const isFreeMember = member.data.planConnections[0].type === 'free';
    
      // If the member is free, check if they have exceeded the submission limit
      if (isFreeMember) {
        let submissionCount = localStorage.getItem('submissionCount') || 0;
    
        if (submissionCount >= MAX_SUBMISSIONS) {
          // If the limit has been reached, hide div578 and show div610
          div578.style.display = 'none';
          div610.style.display = 'block';
        } else {
          // If the limit has not been reached, add a listener for the form submission event
          form.addEventListener('submit', (event) => {
            // Increment the submission count and store it in localStorage
            submissionCount++;
            localStorage.setItem('submissionCount', submissionCount);
    
            // Calculate the number of submissions left
            const submissionsLeft = MAX_SUBMISSIONS - submissionCount;
    
            console.log(`You have submitted ${submissionCount} forms. You have ${submissionsLeft} submissions left.`);
    
            if (submissionCount >= MAX_SUBMISSIONS) {
              // If the limit has been reached, hide div578 and show div610
              div578.style.display = 'none';
              div610.style.display = 'block';
            }
          });
        }
      }
    });

     

    Tried something like this but no luck

    0
  • Comment author
    Julian Galluzzo

    Josef Eines how many people are submitting this form? If it's not too many, you can use this method

    https://www.loom.com/share/e63209f554a642d5a26d4e1f75b0758e

    0
  • Comment author
    Josef Eines

    Every user on the page that is going to showcase their portfolio will submit this form

    Can be hundreds

    0
  • Comment author
    Julian Galluzzo

    TLDR, the free level form sends to the cms as a draft and needs to be approved manually, whereas the paid level plan gives them access to a form which they can submit and instantly gets added to the site unlimited times

    0
  • Comment author
    Josef Eines

    Julian, that video shows the process?

    0
  • Comment author
    Julian Galluzzo

    yeah it does - as long as you're good with manually approving the free ones (and i guess checking first to see they only did it once), this should be fine.

    Also, I'm sure that can be handled by some make scenario connected to whatever database you're using... but in this example, I wanted it to be manual as the job post will actually be reviewed to ensure it isnt spam or anything

    0
  • Comment author
    Josef Eines

    I see, i like your idea but i will try with custom JS first. Basically "Upgrade to publish more portfolio sites" etc .. Should be possible

    0
  • Comment author
    Julian Galluzzo

    I have another idea, loom video incoming (it also involves this article)

    https://docs.memberstack.com/hc/en-us/articles/11264724752667-Display-or-Hide-Elements-Based-on-Custom-Fields-Code-

    0
  • Comment author
    Josef Eines

    Merci my brother

    Waiting for lo00m

    0
  • Comment author
    Julian Galluzzo

    https://www.loom.com/share/1814158b8be147b5a340fad31602aa41

    0
  • Comment author
    Josef Eines

    It makes sense Julian, i like ur approach..

    gonna try it out

    0

Please sign in to leave a comment.