Ondersteuning » Code oplossingen gezocht » Toevoegen van een filter – help!

  • Hi all,

    Sinds enige tijd als leek bezig met wordpress site. Heb een plugin gekocht om mooie antwoordformulieren te maken. werk perfect maar wilde daar specifieke modificatie voor hebben. Nu heeft de developer mij informatie gestuurd om dit te veranderen via aanpassing filter maar heb geen idee welke stappen ik moet ondernemen.

    Bijgaand de link met de code (hooks/filter) die ik moet aanpassen: http://vfbpro.com/hooks/vfb_removed_field_types/

    Ik zou erg geholpen zijn als iemand me op weg zou kunnen helpen waar ik dat via wordpress zou kunnen doen (via bewerker of ook andere manier?) Ik heb al geprobeerd forum te doorzoeken maar zonder resultaat – excuses als het wel al ergens staat….

    Dank alvast!

12 reacties aan het bekijken - 1 tot 12 (van in totaal 12)
  • Deze code is bedoeld voor je functions.php. Dit bestand kun je via bewerker inlezen en veranderen. Beter is om dit te doen via FTP en eerst een kopie te maken (heb je altijd iets om op terug te vallen).

    Wat wil je bereiken?

    groet,
    Lianne

    Thread starter Sjeggie

    (@sjeggie)

    Hi Lianne,

    Dank voor je reactie (ik heb trouwens voor andere zaken al iets aan jouw posts verder op het forum gehad). Ik wil hiermee bereiken dat bepaalde velden worden getoont in de email confirmatie na invullen van formulier.

    Ik ben zo ver dat ik via filezilla bij mij ftp kan. Ik zie echter nog niet helemaal hoe ik mijn functions.php zou moeten veranderen en waar ik code moet neerzetten….(ik kan trouwens aleen bestand vinden in subfolder van mijn thema (Customizr).

    Heb je iets aan de link naar de site?

    wederom dank!

    Oeps, wat voor een moeilijke plugin heb je, dat dit via functions.php zou moeten?? Het opmaken van de notificatie-email is een van de basisdingen die in goede contactform-plugins standaard in de configuratie-schermen van de plugin zitten. Zie bijvoorbeeld Contactform7 (veel gebruikt, ook in het Nederlands beschikbaar, gratis). Of Gravityforms (ook veel gebruikt, iets meer mogelijkheden, voor eenvoudig formulier overbodig, kost een beetje).
    Hoe ‘moeilijk’ is je formulier? Je heb er meerdere?

    Succes!

    Groet,
    Lianne

    Thread starter Sjeggie

    (@sjeggie)

    Ik ben erg enthousiast over dit formulier, vanwege de makkelijk manier van opbouwen en de voorwaardelijke logica die ik kan inbouwen (what if..) en design

    Site is: http://www.racefietstehuur.nl/huurnu/

    Omdat ik een instructieveld gebruik om de prijzen te berekenen, wordt deze instructie niet getoont in de confirmatie-email. De oplossing zou zijn om een filter toe te voegen waardoor deze wel wordt meegnomen (zie link: http://vfbpro.com/hooks/vfb_removed_field_types/

    Het gaat mij erom hoe ik op juiste wijze deze code ergens kan neerzetten…

    Dank! Hopelijk kan ik toch verder met dit formulier…

    Oke, ik begrijp nu welke plugin je gebruikt. Goed opgezet formulier, mijn complimenten. Dit kan ook allemaal met Gravityforms, inclusief iDeal-koppeling en gemakkelijke verwerking in je email-notificatie (maar moeilijker vorm te geven), maar ik begrijp dat je graag bij deze plugin blijft nu je eenmaal deze weg bent ingeslagen en net voor de finale staat.

    De code die er wordt geboden, vertelt welke field-types in de email moeten voorkomen, op basis van de standaard uitgesloten types. In de email bevestig je bijvoorbeeld niet dat men op de submit-button heeft geklikt.
    Dus: hoe heten de desbetreffende velden? Ik ken de plugin niet, maar ik bekeek een video en zag dat de field-types rechts van de titel van alle onderdelen in het formulier staan. Kun je vertellen wat het field-type is van velden die nu niet in de email-bevestiging voorkomen?

    groet,
    Lianne

    Thread starter Sjeggie

    (@sjeggie)

    Dank Lianne,

    het gaat om het veld-type “instructions”, deze word nu uitgesloten (niet meegenomen) in de email. Via aanpassing van het filter zou ik deze eruit moeten kunnen haln zodat die wel zichtbaar is.

    Hopelijk bijna bij de eindstreep… 🙂

    Gr

    Ik begrijp het helemaal nu.
    Voeg het laatste codeblok aan je functions.php toe, gewoon op het einde (knip en plak). Hiermee worden de instruction-field-types wel opgenomen, je overschrijft hiermee je default-settings.

    Erg belangrijk is het volgende, begin hier niet aan voor je dit goed begrijpt

    1. Kopieer eerst in Filezilla het huidige bestand functions.php (via rechtsklik). Die krijgt dan vanzelf een ‘kopie’-naam. Deze moet in dezelfde map staan als je functions.php. Dit doe je om ten allen tijde terug te kunnen vallen.
    2. Zet de code onderin je functions.php.
    3. Test: krijg je een wit scherm: dan passeerde je waarschijnlijk een algemene sluittag in je functions.php. Post de code hier, dan helpen we je verder. Je zult je site live willen houden, onderwijl, dus verwijder in FileZilla het bestand functions.php en hernoem het kopie-bestand naar functions.php. Deze doet weer zijn werk als hiervoor.

    Als je geen wit beeld krijgt test je natuurlijk uit of het nu werkt zoals je wilt. Laat maar weten!

    groet,
    Lianne

    Thread starter Sjeggie

    (@sjeggie)

    Aiii , precies je instructies opgevolgt. Geen effect, site bleef wel gewoon bereikbaar. Daarna originele bestand die ik had hernoemd, teruggezet en nu werkt niets meer 🙁 Site is nu niet meer bereikbaar. Ik vrees dat er dus nu fout in functions.php zit? Is dit nog op te lossen? Ik kan nl ook niet meer bij mijn inlog via WP, wel via ftp bij mijn bestanden… Vrees dat ik nog 1 keer je hulp nodig hebt… 🙂

    Onderstaand de code:

    <?php
    /**
    * Customizr functions
    *
    * The best way to add your own functions to Customizr is to create a child theme
    * http://codex.wordpress.org/Child_Themes
    *
    * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
    * General Public License as published by the Free Software Foundation; either version 2 of the License,
    * or (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    *
    * You should have received a copy of the GNU General Public License along with this program; if not, write
    * to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
    *
    * @package Customizr
    * @subpackage functions
    * @since 3.0
    * @author Nicolas GUILLAUME <nicolas@themesandco.com>
    * @copyright Copyright (c) 2013, Nicolas GUILLAUME
    * @link http://themesandco.com/customizr
    * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    */

    /**
    * Singleton factory : on demand classes instanciation
    * Thanks to Ben Doherty (https://github.com/bendoh) for the great programming approach
    *
    *
    * @since Customizr 3.0
    */
    if ( !function_exists( ’tc__’ ) ) :
    function tc__ ( $group = null, $class = null ) {

    static $instances;

    //get the class file(s) array by group and name (if defined)
    $files = tc_get_classes ( $group, $path = null ,$class);

    foreach ( $files as $f )
    {
    //load class files
    locate_template ( $f , true , true );//name, load, require_once

    $classname = ‘TC_’.tc_get_file_class( $f );

    //instanciation
    if( !isset( $instances[ $classname ] ) )
    {
    $instances[ $classname ] = new $classname;
    }
    }//end foreach

    return $instances[ $classname ];
    }
    endif;

    /**
    * Recursive function, takes 2 parameters ( $group is required, $class is optional)
    * Scans the theme folder and returns an array of class file names according to their group/name
    *
    * @since Customizr 3.0
    */
    if ( !function_exists( ’tc_get_classes’ ) ) :
    function tc_get_classes( $group , $path = null , $class = null ) {

    /* TC_BASE is the root server path */
    if ( ! defined( ‘TC_BASE’ ) ) { define( ‘TC_BASE’ , get_template_directory().’/’ ); }

    $classes = array();

    $files = scandir(TC_BASE.$path);

    foreach ( $files as $file)
    {
    if ( $file[0] != ‘.’ )
    {
    if ( is_dir(TC_BASE.$path.$file) )
    {
    $classes = array_merge( $classes, tc_get_classes( $group, $path.$file.’/’ , $class));
    }

    else if ( substr( $file, -4) == ‘.php’ )
    {
    switch ( $class)
    {
    //if the class is not defined
    case null:
    if ( tc_get_file_group( $file) == $group)
    {
    $classes[] = $path.$file;
    }
    break;

    default:
    if ( tc_get_file_class( $file) == $class)
    {
    $classes[] = $path.$file;
    }
    break;
    }//end switch
    }//end if
    } //end if
    }//end for each

    return $classes;
    }
    endif;

    /**
    * Returns the class group from the file name
    *
    *
    * @since Customizr 3.0
    */
    if ( !function_exists( ’tc_get_file_group’ ) ) :
    function tc_get_file_group( $file) {

    $group = preg_match_all( ‘/\-(.*?)\-/’ , $file , $match );

    if ( isset( $match[1][0] ) )
    {
    return $match[1][0];
    }
    }
    endif;

    /**
    * Returns the class name from the file name
    *
    *
    * @since Customizr 3.0
    */
    if ( !function_exists( ’tc_get_file_class’ ) ) :
    function tc_get_file_class( $file) {
    //find the name of the class=>after last occurence of ‘-‘ and remove .php
    $pos = strripos( $haystack = $file , $needle = ‘-‘ );
    //get the part of the string containing the class name
    $classname = substr( $file , $pos + 1);
    //get rid of ‘.php’
    $classname = substr_replace( $classname , ” , -4 , 4);

    return $classname;
    }
    endif;

    /**
    * Allows WP apply_filter() function to accept up to 4 optional arguments
    *
    *
    * @since Customizr 3.0
    */
    if( !function_exists( ’tc__f’ )) :
    function tc__f ( $filter , $arg1 = null , $arg2 = null , $arg3 = null, $arg4 = null) {

    return apply_filters( $filter , $arg1 , $arg2 , $arg3, $arg4 );

    }
    endif;

    /* Loads the theme classes framework */
    locate_template( ‘inc/class-customizr-__.php’ ,true,true );
    tc__( ‘customizr’ );//fires the theme
    tc__f( ‘rec’ , __FILE__ );//starts recording for server execution timeline

    /*
    * The best and safest way to add your own functions to Customizr is to create a child theme
    * You can add functions here but it will be lost on upgrade. If you use a child theme, you are safe!
    * http://codex.wordpress.org/Child_Themes
    */

    Hoi Sjeggie,

    Natuurlijk is het op te lossen, even snel alvast om je gerust te stellen. Ik kijk hier zo meteen naar (alhoewel weinig tijd, druk programma vandaag). Check je even goed of je de naam goed hebt: functions.php? In exact de map waarin je hem hebt aangetroffen? Met exact dezelfde code? Als ik even snel kijk, mis ik een afsluitende tag op het einde: ?>

    groet,
    Lianne

    Thread starter Sjeggie

    (@sjeggie)

    tnx voor je zeer snelle antwoord, ben er zelf nog niet helemaal gerust op……

    Ja ik heb de goede naam en ik heb hem in precies dezelfde map gezet. Met dezelfde code. Heb net nog even geprobeerd met “?>” toe te voegen maar dat helpt niet….

    PS Ik heb wel een backup plugin (backup!ready) maar die kan ik dus niet benaderen. Via ftp kan ik wel bestand met gegevens van backup downloaden en daar eventueel iets mee doen…..

    Hoi Sjeggie,

    Ik snap dat je niet helemaal gerust bent, maar je hebt geen niet te herstellen situatie. Geen paniek dus, maar natuurlijk wil je zo snel mogelijk weer live.

    Goed in ieder geval dat je een recente backup hebt. Kun je deze via FTP downloaden? En het bestand functions.php benaderen en lezen in een code-editor? Staat het bestand in dezelfde structuur als nu live? En is de inhoud hetzelfde?

    Ik heb zelf het theme op een testsite gezet, maar zie dat je een verouderde versie gebruikt van het Customizr. De functions.php verschilt nogal, dus het lijkt me niet aan te raden hiermee te werken.

    Uiteraard moet dit worden opgelost. Benader je me anders prive? Klik links op mijn naam > website > contact.

    groet,
    Lianne

    Hoi Sjeggie,

    We zijn er deze week uitgekomen. Het bleek dat er iets meer was veranderd (onbekend is gebleken wat precies), waardoor er via een backup de site opnieuw live moest worden gezet.
    Verder is gebleken dat Visual Form Builder niet de mogelijkheid biedt calculaties op te nemen. Het instructions-veld biedt frontend wel dit idee, maar het in de email zichtbaar maken van het instructions-veld levert een overzicht op van de mogelijke uitkomsten (en dus niet van de uitsluitend gekozen optie). Het instructions-veld reageert dus zoals eigenlijk de naam al zegt: hierin kunnen invul-instructies, die je inderdaad niet een een email-notificatie terug wilt zien.

    Gravity forms is dus toch een slim aletrnatief (incl iDeal-mogelijkheid) of zoiets als http://wordpress.org/plugins/calculated-fields-form/ (mij geen iDeal-component van bekend)

    Succes verder!

    Lianne

12 reacties aan het bekijken - 1 tot 12 (van in totaal 12)
  • Het onderwerp ‘Toevoegen van een filter – help!’ is gesloten voor nieuwe reacties.