• Chi sono
  • Contattami
  • Feed RSS
  • FlipBoard

Karibusana

  • MacOs
  • WordPress
  • iPhone
  • Jailbreak
  • Marketing
  • SEO
Ti trovi qui: Home / WordPress / Integrare Gravity Forms con MyCred

Integrare Gravity Forms con MyCred

Aggiornato da Vincenzo Vecchio il 21 Ottobre, 2017 Lascia un commento

integrare gravity forms con mycred

Mi è stato chiesto da un lettore se esistesse un metodo per poter integrare il plugin MyCred, il quale permette di creare un sistema di crediti per gli utenti, con un Gravity Forms, il famoso plugin per la creazione di moduli di contatto.

Il plugin MyCred offre già la possibilità di integrare Gravity Forms utilizzando l’hook gform_after_submission il quale permette di eseguire delle azioni non appena il form è stato inviato, tuttavia l’hook di base fornito dal plugin MyCred permette solo di lavorare con un unico valore impostato precedentemente dall’amministratore di WordPress.

La domanda invece era: “vorrei creare un form con delle caselle di selezione a cui attribuire un valore in crediti che dovranno essere scalati dal portafoglio crediti dell’utente” allora come fare? Segui la guida in semplici passaggi

Crea il nuovo form e inserisci un nuovo campo checkbox, quindi per ogni opzione devi specificarne il valore (questo sarà poi il numero di crediti che verrà rimosso o aggiunto) non appena il form sarà inviato.

Inserisci un nuovo campo di testo e imposta la visibilità su nascosto

gravity forms campo nascosto

Inserisci un nuovo campo HTML e incolla il seguente codice javascript, questo permetterà di passare il valore selezionato nel campo checkbox all’interno del campo di testo nascosto. Fai attenzione ad inserire i valori corretti per i rispettivi ID del campo checkbox e del campo di testo nascosto come specificato nei commenti che trovi nel codice.

Nota Bene: di solito il valore dell’id del campo è input_idform_idcampo altrimenti puoi ispezionare il codice HTML della tua pagina utilizzando lo strumento di analisi del codice che trovi su Google Chrome.

<script>

var checkboxHandler = {

//Modifica gli ID a seconda di quelli del tuo form
 checkboxFieldId: 'input_1_25',  //ID del campo checkbox
 outputFieldId: 'input_1_23',  //ID del campo di testo nascosto

 checkboxField: null,
 outputField: null,

init: function() {

      this.outputField = document.getElementById(this.outputFieldId);
      if (typeof this.outputField === 'undefined' || !this.outputField) {
         console.error('Missing output field ' + this.outputFieldId);
         return;
      }

      this.checkboxField = document.getElementById(this.checkboxFieldId);
      if (typeof this.checkboxField === 'undefined' || !this.checkboxField) {
         console.error('Missing checkbox field ' + this.checkboxFieldId);
         return;
      }

     jQuery(this.checkboxField).on(
            'change',
            'input[type=checkbox]', {
                  checkbox: this.checkboxField,
                  output: this.outputField
             },
            this.setValues
     );
 },

setValues: function(ev) {

 var fields = ev.data;
 var valueString = '';

   jQuery(fields.checkbox).find('input:checked').each(function(i) {
         valueString += this.value + ', ';
   });

 fields.output.value = valueString.replace(/, $/, '');
}
};

jQuery().ready(checkboxHandler.init());
</script>


Fatto questo dobbiamo fare un modo che il valore del campo nascosto venga processato da MyCred. Basta inserire il seguente codice php all’interno del tuo file functions.php facendo le dovute modifiche come descritto nei commenti all’interno del codice

function update_balance_form3( $entry, $form ) {

        // Modifica il numero 2 con l'id del campo nascosto
        $orderID = rgar( $entry, '2' );
        $user_id = get_current_user_id();

            // Sostituisci mycred_subtract con mycred_add se vuoi aggiungere i crediti
            if ( function_exists( 'mycred_subtract' ) ) {
                mycred_subtract(
                    'Riduzione punti per invio form',
                    $user_id,
                    $orderID,
                    'Rimozione punti: ' . $orderID
                );
            }
    }

// Modifca il numero 1 di gform_after_submission_1 con l'id del form in questione
add_action( 'gform_after_submission_1', 'update_balance_form3', 10, 2 );

Ti serve aiuto per integrare MyCred con Gravity Forms? Inviami una email per una consulenza privata.

Altri articoli che potrebbero interessarti

wordpress google page speed
Ottimizza WordPress con Google Page Speed
Rendere WordPress sicuro
Consigli su come rendere WordPress più sicuro
articoli correlati senza plugin
5 plugins per correlare posts su wordpress

Vincenzo Vecchio

Appassionato di tecnologia. Da molti anni mi occupo della realizzazione di siti web utilizzando i più comuni CMS. In particolare WordPress e Joomla. Di recente mi sono anche avvicinato al modo Apple e a tutti i suoi prodotti.

Seguimi su : FacebookGoogle+Twitter

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli Recenti

  • Come creare contenuti privati per utenti
  • Come disabilitare la GPU AMD Radeon su MacBook Pro
  • Come creare area riservata WordPress senza plugins
  • GDPR e WordPress la guida definitiva per il tuo sito
  • Come ottimizzare i CSS per avere 100/100 su Google PageSpeed
  • Integrare Gravity Forms con MyCred

Commenti Recenti

  • Vincenzo su Area riservata su WordPress con WP Customer Area
  • Nico su Area riservata su WordPress con WP Customer Area
  • Vincenzo su Area riservata su WordPress con WP Customer Area
  • Nico su Area riservata su WordPress con WP Customer Area

Archivi

  • Febbraio 2020 (1)
  • Dicembre 2019 (1)
  • Agosto 2018 (1)
  • Aprile 2018 (1)
  • Marzo 2018 (1)

© 2023 · Cookie Policy · Privacy Policy