আমি কীভাবে বাণিজ্য চেকআউট ফর্মটিতে অতিরিক্ত জমা হ্যান্ডলার যুক্ত করব?


14

আমি কীভাবে একটি অতিরিক্ত জমা হ্যান্ডলার যুক্ত করব? আমি এটি চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি।

function c_coupon_form_alter(&$form, $form_state, $form_id) {
  drupal_set_message($form_id);
  switch($form_id) {
     case 'commerce_checkout_form_review':
      drupal_set_message($form_id . '_form submit');
      $form['#submit'][] = 'c_coupon_review_submit';
  }
}

function c_coupon_review_submit($form, &$form_state) {
  drupal_set_message('submitted');
}

উত্তর:


14

আপনি যা করছেন তা সঠিক।

সমস্যাটি হ'ল ড্রুপাল কমার্স ক্লিক করা বোতামগুলিতে জমা দেওয়ার ক্রিয়াটি সংজ্ঞায়িত করেছে, যা ফর্মটিতে সংজ্ঞায়িত জমা দেওয়া হ্যান্ডলারের পরিবর্তে ব্যবহৃত হবে। সুতরাং আপনি আপনার জমা ফাংশনটি ব্যবহার করতে চান এমন বোতামগুলিতে (বাতিল, চালিয়ে যান) আপনার জমা হ্যান্ডলারগুলি যুক্ত করতে হবে।

$form['buttons']['continue']['#submit'][]='c_coupon_review_submit';

তাহলে কীভাবে আমি চালিয়ে যাওয়া বোতামে জমা হ্যান্ডলারটি যুক্ত করতে পারি?
আহমেদ

1
আমি বিশ্বাস করি এটি $form['buttons']['continue']['#submit'][] = ..আপনি ফর্মের পরিবর্তনশীলটি পরিদর্শন করতে পারেন এবং এটি খুঁজে পেতে পারেন।
googletorp

তবে আমি চাই যে আমার জমা ফাংশনটি তার নিজের জমা ফাংশনের চেয়ে প্রথমে কার্যকর করা উচিত? আমি এই কিভাবে করতে পারে?
আহমদ

এটি একটি নতুন প্রশ্ন। মন্তব্যগুলি প্রশ্ন জিজ্ঞাসা / উত্তর দেওয়ার জন্য নয়।
googletorp

6

আহমদের পরিমার্জিত প্রশ্নের দ্রুত উত্তর দিতে - অন্যান্য জমা দেওয়ার আগে তার কাস্টম জমা ফাংশন কীভাবে যুক্ত করবেন:

if ( empty($form['buttons']['continue']['#submit']) ) {
    $form['buttons']['continue']['#submit'] = array(); // just in case
}
array_unshift($form['buttons']['continue']['#submit'],'c_coupon_review_submit');

রেফারেন্সের জন্য, পরিশোধিত প্রশ্নটি গুগলটারপ থেকে দেওয়া উত্তরগুলির মন্তব্যে রয়েছে।
রোবিক

1

কোনও ফর্মে অতিরিক্ত জমা হ্যান্ডলার যুক্ত করতে নিম্নলিখিত কোডটি ব্যবহার করুন। এটি আমার পক্ষে কাজ করেছে:

function mymodule_form_alter(&$form, &$form_state, $form_id) {
        if ($form_id == 'xyz') {
            $form['#submit'][] = 'webform_extra_submit_test';
        }
    }

function webform_extra_submit_test($form, &$form_state) {
    global $user;
    $user_id = $user->uid; 
    // do code here $form_state['values'] etc...
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.