Custom field in checkout page in opencart

3.5k Views Asked by At

I/m new to opencart and php. I was trying to set up a online store of mine using opencart. I m trying to add a custom field in checkout page. I'm using OC 1.5.4. Below is the vqmod which i have written. The problem is that the table is not getting updated.

please help, where am i going wrong

<modification>
<id>Custom Field in checkout</id>
<version>1</version>
<vqmver>2.4</vqmver>
<author>arun</author>
<file name="catalog/view/theme/bigshop/template/checkout/shipping_method.tpl">
    <operation>
        <search position="before"><![CDATA[
            <p><?php echo $text_shipping_method; ?></p>
        ]]></search>
        <add><![CDATA[
            <p><?php echo $text_shipping_timeslot; ?></p>
            <table class="radio">

      <tr class="highlight">
        <td colspan="3"><b><?php echo "Delivery time slot"; ?></b></td>
      <td>
         <input type="text" name="selection" value="<?php echo $selection; ?>" id="selection"? 
         </td>
      </tr>

      </table>
        ]]></add>
    </operation>
</file>
<file name="catalog/language/english/checkout/checkout.php">
    <operation>
        <search position="before"><![CDATA[
            $_['text_shipping_method']           = 'Please select the preferred shipping method to use on this order.';
        ]]></search>
        <add><![CDATA[
            $_['text_shipping_timeslot']           = 'Please select the preferred shipping time slot.';

        ]]></add>
    </operation>
</file>


   <file name="catalog/controller/checkout/shipping_method.php">
       <operation>
           <search position="before"><![CDATA[
               $this->data['text_shipping_method'] = $this->language->get('text_shipping_method');
           ]]></search>
           <add><![CDATA[
               $this->data['text_shipping_timeslot'] = $this->language->get('text_shipping_timeslot');

               if (isset($this->request->post['selection'])) {
           $this->data['selection'] = $this->request->post['selection'];
       } else {
           $this->data['selection'] = '';}


]]></add>
       </operation>

   </file>





<file name="catalog/model/checkout/order.php">
        <operation>
            <search position="replace"><![CDATA[
               $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");
        ]]></search>
            <add><![CDATA[
              $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW(), selection = '" . $this->db->escape($data['selection']) . "'");
        ]]></add>
        </operation>
</file>

</modification>
2

There are 2 best solutions below

0
On

Steps to try:

  • Check whether vqmod is installed by calling https://domain.com/vqmod/install in browser. If not installed, then please scroll up and read the steps.
  • Verify file name and path, also confirm that the code in search tag exists in the file mentioned.
  • Check folder permissions. Make sure that vqmod/vqcache and vqmod/logs have 755 or 777 permission. If nothing works, then try 777 permission recursively for vqmod folder.
  • Check the error logs in vqmod/logs.
  • Check the installed vqmod version and the vqmod version given in xml file (), both need to be the same.
  • Delete the files in vqmod/vqcache and check again. Also see whether vqmod copy of your file is generated or not.
  • Move any vqmod xml file outside the vqmod folder and check. If everything works, move the xml back to the vqmod folder. I don’t know the reason, but it worked for me in some cases :) !
  • – put this line at the top of the XML to make it valid and more compatible.
  • Try the VQMod Manager extension. It may help you!

Reference link: https://sankartypo3.wordpress.com/2013/11/25/opencart-vqmod-tutorial/

0
On

Really late answer but might help someone else in future: A > is missing at the end:

<input type="text" name="selection" value="<?php echo $selection; ?>" 
  id="selection"? 

should be

<input type="text" name="selection" value="<?php echo $selection; ?>" 
  id="selection"? >