VirtueMart Forum

VirtueMart 2 + 3 + 4 => General Questions => Topic started by: papakota on January 22, 2020, 03:16:36 AM

Title: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 22, 2020, 03:16:36 AM
Hello
I want to free my future site's visitors from having to fill out the form before submitting their name, e-mail and a phone No. Basically, in most cases it won't be needed for them to also add more information in the form's text box. But the default (current) status is that they must at least type a single word before they're allowed to submit the form. I'll attach screenshot to better clarify the issue and also provide a link to a live site where you can see it in a real life situation.

https://www.profilecreations.co.za/index.php/products/desktop-stationery/blockpads/pvc-blockpad-detail

It's a Joomla's Virtuemart shop. Latest Joomla version and VM3 working together. In a product detail page there's an "Ask A Question" button. After it's clicked, you get a contact form, in which one can input their contact info and fill out the text box below and press "Send your question" button just below. My goal is just to directly contact the potential client by using their e-mail or a phone number. I don't need them to necessarily provide me with more information in that text box rectangle.  What I know so far is that there's a Virtuemart controller PHP file that makes sure that the required text box is filled out before the form's submission. This one: components/com_virtuemart/controllers/productdetails.php I'll also attach it to this post (tgziped). It must be modified so that there wouldn't be a requirement of filling out that text box befere one can submit the form. Here's the link to the real live site's product detail page with an "Ask A Question" button in the middle.
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: Jörgen on January 22, 2020, 07:00:35 AM
The min and max nr of characters can be set in VM back end configuration shop front. But setting it to 0 and 0 does not seem work. I am not using the latest version of VM. You could alway try to set number of characters to 0 and 0.

Jörgen @ Kreativ Fotografi
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 22, 2020, 07:24:00 AM
Nope, it doesn't work also in the lastest version. The issue is that the filling out the form is required. Regardless of number of characters that I can set in VM's backend.
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: GJC Web Design on January 22, 2020, 09:45:06 AM
override the components\com_virtuemart\views\recommend\tmpl\form.php and adapt as required
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 22, 2020, 10:04:51 AM
GJC Web Design,
So what exactly should I change in that file to achieve my goal?
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: jenkinhill on January 22, 2020, 10:17:49 AM
Setting Question minimum length in VM Configuration/Shopfront to  -1  allows the form to submit with no content.

To tidy the user interface edit and override the file described by GJC - only a case of removing two table rows.

You could change the text on the submit button with a language override of COM_VIRTUEMART_ASK_SUBMIT
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 22, 2020, 10:24:32 AM
I've set minimum question length to -1, but I still can't submit the form without writing something in it.
As per that file that GJC Web Design mentioned... Editing it will solve my issue? If YES, then what exactly should be changed in it?
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: GJC Web Design on January 22, 2020, 10:57:51 AM
remove the validation classes I assume
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: jenkinhill on January 22, 2020, 12:11:29 PM
And if you are using template overrides already then the file to edit may be templates/[your joomla template]/html/com_virtuemart/recommend/form.php  -  this is also where your edited file should be placed if not already there.
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: Milbo on January 22, 2020, 19:06:45 PM
Could be also done within a membership.
https://extensions.virtuemart.net/support-updates/virtuemart-membership
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 22, 2020, 20:30:59 PM
GJC Web Design,
class="validate[required,minSize[<?php echo $min ?>],maxSize[<?php echo $max ?>]] field"
I deleted this code in that file, but nothing's changed. You said that I had to remove a validation class...
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: GJC Web Design on January 22, 2020, 23:01:35 PM
keep trying till you find it.. the idea of this forum is not "get my development work done for free"...
It is to receive advice... I have no idea "exactly" how to disable the validation because i have never needed to do it... but it will be there somewhere
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: Studio 42 on January 22, 2020, 23:52:58 PM
Add a simple point as value for eg. So you have something by default in the form
Title: Re: How to cancel mandatory (required) field in Virtuemart form submission process?
Post by: papakota on January 23, 2020, 03:35:26 AM
I've figured out myself how to solve the issue. First of all, I got rid of the text box and a character counter altogether in file:components/com_virtuemart/views/askquestion/tmpl/form.php
Then I solved the character validation issue in file: components/com_virtuemart/controllers/productdetails.php like so:

$min = VmConfig::get ('asks_minimum_comment_length', 0) - 1;

In the end, I just get the form with NAME, E-MAIL, PHONE NO. and a captcha validation.
I'll attach a targzipped versions of both edited files in case anyone needs something like this.