Gravity Forms (WordPress-plugin): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(66 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
 
Sinds 2020 is ''Gravity Forms'' m'n standaard formulieren-plugin, op advies van een specialist. Ik denk dat ik 'm ok vind. De belangrijkste dingen gaan heel soepel. Waarschijnlijk zijn het de ''nag-screens'' om maar de betaalde versie te kopen, waar ik het meeste moeite mee heb. En dat het de complete backend-interface van WordPress overneemt. Verder is-ie prima.
 
Sinds 2020 is ''Gravity Forms'' m'n standaard formulieren-plugin, op advies van een specialist. Ik denk dat ik 'm ok vind. De belangrijkste dingen gaan heel soepel. Waarschijnlijk zijn het de ''nag-screens'' om maar de betaalde versie te kopen, waar ik het meeste moeite mee heb. En dat het de complete backend-interface van WordPress overneemt. Verder is-ie prima.
  
== Installatie WP-CLI-add-on ==
+
Dit artikel gaat tot op heden (okt. 2021) vrijwel uitsluitend over de WP-CLI-commando's om Gravity Forms en bijbehorende formulieren te beheren.
  
Standaard ondersteunt Gravity Forms niet de WordPress Command Line Interface. Daar bestaat een gratis add-on voor. Die moet je apart installeren:
+
== Licensering ==
  
<pre>
+
Het is een betaalde plugin. Zonder licentie doet-ie nix.
wp plugin install gravityformscli --activate
 
  
Installing Gravity Forms CLI Add-On (1.4)
+
* Als ik sites kloon, is de gekloonde licentie ok - Itt. tot een andere plugin (naam vergeten) waarbij de licentie URL-afhankelijk was
Downloading installation package from https://downloads.wordpress.org/plugin/gravityformscli.1.4.zip...
+
* Als ik alleen de plugin kopiëer en plak, is de licentie niet ok.
Unpacking the package...
 
Installing the plugin...
 
Plugin installed successfully.
 
Activating 'gravityformscli'...
 
Plugin 'gravityformscli' activated.
 
Success: Installed 1 of 1 plugins.
 
</pre>
 
  
Activeren:
+
== WP-CLI ==
  
<code>
+
=== Installation ===
wp plugin install gravityformscli --activate
 
</code>
 
  
== wp gf ==
+
''Gravity Forms'' has quite a library of ''WP-CLI'' commands, but these need to be separately installed as a plugin:
  
$ wp help gf
+
<pre>
 +
wp plugin install gravityformscli --activate
 +
</pre>
  
NAME
+
=== Disable or enable a form? ===
  
  wp gf
+
I have the impression that you cannot disable or enable a form through a dedicated WP-CLI command.
 
 
DESCRIPTION
 
 
 
  Manage Gravity Forms.
 
 
 
SYNOPSIS
 
 
 
  wp gf <command>
 
 
 
SUBCOMMANDS
 
 
 
  check_update      Checks for available updates for Gravity Forms or a Gravity Forms official add-on.
 
  entry            Manage Gravity Forms Entries.
 
  field            Manage Gravity Forms Form Fields.
 
  form             Manage Gravity Forms.
 
  install          Installs Gravity Forms or a Gravity Forms official add-on.
 
  license          Manage the Gravity Forms License Key.
 
  notification      Manage Gravity Forms Notifications.
 
  setup            Runs the setup for Gravity Forms or a Gravity Forms official add-on.
 
  tool              Misc Gravity Forms Tools.
 
  update            Updates Gravity Forms or a Gravity Forms official add-on.
 
  version          Returns the version of Gravity Forms.
 
 
 
 
 
 
 
GLOBAL PARAMETERS
 
 
 
  --path=<path>
 
      Path to the WordPress files.
 
 
 
  --url=<url>
 
      Pretend request came from given URL. In multisite, this argument is how the target site is specified.
 
 
 
  --ssh=[<scheme>:][<user>@]<host|container>[:<port>][<path>]
 
      Perform operation against a remote server over SSH (or a container using scheme of "docker", "docker-compose",
 
      "vagrant").
 
 
 
  --http=<http>
 
      Perform operation against a remote WordPress installation over HTTP.
 
 
 
  --user=<id|login|email>
 
      Set the WordPress user.
 
 
 
  --skip-plugins[=<plugins>]
 
      Skip loading all plugins, or a comma-separated list of plugins. Note: mu-plugins are still loaded.
 
 
 
  --skip-themes[=<themes>]
 
      Skip loading all themes, or a comma-separated list of themes.
 
 
 
  --skip-packages
 
      Skip loading all installed packages.
 
 
 
  --require=<path>
 
      Load PHP file before running the command (may be used more than once).
 
 
 
  --[no-]color
 
      Whether to colorize the output.
 
 
 
  --debug[=<group>]
 
      Show all PHP errors and add verbosity to WP-CLI output. Built-in groups include: bootstrap, commandfactory, and
 
      help.
 
 
 
  --prompt[=<assoc>]
 
      Prompt the user to enter values for all command arguments, or a subset specified as comma-separated values.
 
 
 
  --quiet
 
      Suppress informational messages.
 
</pre>
 
  
 +
Example using SQL:
  
 
<pre>
 
<pre>
$ wp help gf
+
cd $site_path
 
+
sql="update wp_gf_form set is_active=0 where id=1"
NAME
+
wp db query "$sql"
 
 
  wp gf
 
 
 
DESCRIPTION
 
 
 
  Manage Gravity Forms.
 
 
 
SYNOPSIS
 
 
 
  wp gf <command>
 
 
 
SUBCOMMANDS
 
 
 
  check_update      Checks for available updates for Gravity Forms or a Gravity Forms
 
                    official add-on.
 
  entry            Manage Gravity Forms Entries.
 
  field            Manage Gravity Forms Form Fields.
 
  form              Manage Gravity Forms.
 
  install          Installs Gravity Forms or a Gravity Forms official add-on.
 
  license          Manage the Gravity Forms License Key.
 
  notification      Manage Gravity Forms Notifications.
 
  setup            Runs the setup for Gravity Forms or a Gravity Forms official add-on.
 
  tool              Misc Gravity Forms Tools.
 
  update            Updates Gravity Forms or a Gravity Forms official add-on.
 
  version          Returns the version of Gravity Forms.
 
 
</pre>
 
</pre>
  
=== wp gf check_update ===
+
== Database-model ==
 
 
=== wp gf entry ===
 
 
 
<pre>
 
$ wp help gf entry
 
 
 
NAME
 
 
 
  wp gf entry
 
 
 
DESCRIPTION
 
 
 
  Manage Gravity Forms Entries.
 
 
 
SYNOPSIS
 
 
 
  wp gf entry <command>
 
  
SUBCOMMANDS
+
=== Basic form settings - wp_gf_form ===
  
  create            Creates a new entry from either a JSON string with the raw entry or from field-value pairs.
+
Basic form settings are stored in table <code>wp_gf_form</code>. Example:
  delete            Deletes an entry.
 
  duplicate        Duplicates an entry
 
  edit              Launch system editor to edit the JSON representation of the Entry.
 
  export            Exports entries.
 
  get              Returns a JSON representation of an entry.
 
  import            Imports entries.
 
  list              Displays a list of entries.
 
  notification      Send Gravity Forms Notifications.
 
  update            Updates an entry.
 
</pre>
 
 
 
=== wp gf entry delete ===
 
  
 
<pre>
 
<pre>
$ wp help gf entry delete
+
$ select * from wp_gf_form;
 
 
NAME
 
 
 
  wp gf entry delete
 
 
 
DESCRIPTION
 
 
 
  Deletes an entry.
 
 
 
SYNOPSIS
 
 
 
  wp gf entry delete <entry-id>... [--force]
 
  
 +
+----+----------------+---------------------+--------------+-----------+----------+
 +
| id | title          | date_created        | date_updated | is_active | is_trash |
 +
+----+----------------+---------------------+--------------+-----------+----------+
 +
|  1 | Contact form  | 2019-08-05 08:38:28 | NULL        |        0 |        0 |
 +
|  3 | Selection Tool | 2020-12-23 09:01:02 | NULL        |        1 |        0 |
 +
+----+----------------+---------------------+--------------+-----------+----------+
 
</pre>
 
</pre>
  
Met de Boolean optie <code>--force</code> worden entries direct verwijderd, ipv. verplaatst te worden naar de prullenbak.
+
Fields:
 
 
Voorbeelden:
 
  
 
<pre>
 
<pre>
# Delete a form entry
+
* id            MEDIUMINT(10)  PK  NN  UN  AI
########################################
+
* title          VARCHAR(150)        NN
#
+
* date_created  DATETIME            NN
# Delete - Don't move it to trash
+
* data_updated  DATETIME                            Default: NULL
#
+
* is_active      TINYINT(10)          NN            Default: 1
wp gf entry list 1 --format="ids"
+
* is_trash      TINYINT(10)         NN            Default: 0
 
 
1921 1920 1918 1909 1903 1898 1897 1896 1893 1889 1885 1884 1883 1882 1877 1876 1875 1867 1866 1863^C
 
 
 
$ wp gf entry delete --force 1921
 
 
 
Success: Deleted entry 1921
 
 
 
 
 
# Trying out wildcard * to delete all
 
########################################
 
#
 
# Some unexpected behaviour:
 
#
 
wp gf entry delete *
 
 
 
 
 
Error: Entry with id dvb not found
 
Error: Entry with id favicon.ico not found
 
Error: Entry with id help.txt not found
 
Error: Entry with id index.php not found
 
Error: Entry with id license.txt not found
 
Error: Entry with id list.txt not found
 
Error: Entry with id login.txt not found
 
Error: Entry with id malcare-waf.php not found
 
Error: Entry with id order-ids.txt not found
 
Error: Entry with id order_list.txt not found
 
Error: Entry with id readme.html not found
 
Error: Entry with id robots.txt not found
 
Error: Entry with id text2.txt not found
 
Error: Entry with id text.txt not found
 
Error: Entry with id wp not found
 
Error: Entry with id wp-activate.php not found
 
Error: Entry with id wp-admin not found
 
Error: Entry with id wp-blog-header.php not found
 
Error: Entry with id wp-comments-post.php not found
 
Error: Entry with id wp-config.php not found
 
Error: Entry with id wp-config-sample.php not found
 
Error: Entry with id wp-content not found
 
Error: Entry with id wp-cron.php not found
 
Error: Entry with id wp-includes not found
 
Error: Entry with id wp-links-opml.php not found
 
Error: Entry with id wp-load.php not found
 
Error: Entry with id wp-login.php not found
 
Error: Entry with id wp-mail.php not found
 
Error: Entry with id wp-salt.php not found
 
Error: Entry with id wp-settings.php not found
 
Error: Entry with id wp-signup.php not found
 
Error: Entry with id wp-trackback.php not found
 
Error: Entry with id xargs not found
 
Error: Entry with id xmlrpc.php not found
 
 
 
 
 
# "--all" to delete all? Nope
 
########################################
 
#
 
wp gf entry delete --all
 
 
 
usage: wp gf entry delete <entry-id>... [--force]
 
 
 
 
 
# No argument to delete all? Nope
 
########################################
 
#
 
wp gf entry delete
 
 
 
usage: wp gf entry delete <entry-id>... [--force]
 
 
 
 
 
# Delete all entries form 1-3
 
########################################
 
#
 
wp gf entry delete --force $(wp gf entry list 1 --format="ids" --page_size=100000)
 
wp gf entry delete --force $(wp gf entry list 2 --format="ids" --page_size=100000)
 
wp gf entry delete --force $(wp gf entry list 3 --format="ids" --page_size=100000)
 
 
</pre>
 
</pre>
  
=== wp gf entry list ===
+
=== Form definitions - wp_gf_form_meta ===
 
 
<pre>
 
wp help gf entry list
 
 
 
NAME
 
 
 
  wp gf entry list
 
 
 
DESCRIPTION
 
 
 
  Displays a list of entries.
 
 
 
SYNOPSIS
 
 
 
  wp gf entry list <form-id> [--status=<status>] [--format=<format>] [--page_size=<page_size>] [--offset=<offset>]
 
</pre>
 
  
'''--format'''
+
Volledige definities van formulieren vind je in tabel <code>wp_gf_form_meta</code>. Ik denk dat het JSON-code is. Voordeel boven reguliere ''serialised data'': Het aantal bytes per veld is niet vastgelegd. Je kunt het dus veel gemakkelijker zelf bewerken. De verschillende kolommen:
  
Mogelijke waardes:
+
* <code>form_id</code>: Dezelfde formulier-ID als via de WP-CLI
 +
* <code>display_meta</code>: Lijkt dezelfde formulierdefinitie te zijn als die je krijgt via WP-CLI
 +
* <code>entries_grid_meta</code>: Onduidelijke serialised data - Heeft ogenschijnlijk gelukkig niets te maken met formulier zelf
 +
* <code>confirmations</code>: Complete definities van verzend-bevestigingen
 +
* <code>notifications</code>: Complete definities van de notificatie-emails die naar beheerders wordt gestuurd.
  
* <code>table</code>
+
== ReCAPTCHA add-on ==
* <code>csv</code>
 
* <code>json</code>
 
* <code>count</code>
 
* <code>ids</code> - Deze optie vind je niet snel terug in de documentatie.
 
  
'''-page_size'''
+
Google's ''ReCAPTCHA'' can be integrated into forms:
  
Standaard worden er 20 entries weergegeven. Met de parameter <code>--page_size</code> kun je dit aanpassen. Ik heb dit getest op formulieren met bijna 900 entries, en dat ging prima. Er lijkt vooralsnog geen bovengrens te zijn.
+
* wp_admin » Forms » Settings » ReCAPTCHA
 +
* https://www.google.com/recaptcha/about/
 +
* Using Google's reCAPTCHAs for Gravity Forms, requires the ''Gravity Forms reCAPTCHA Add-On'': https://www.gravityforms.com/add-ons/recaptcha/
 +
* This is not the same as https://wordpress.org/plugins/gravity-forms-zero-spam/
 +
* This add-on cannot be installed through <code>wp plugin install</code>: See <code>wp plugin search "gravity forms recaptcha" --per-page=100 | grep gravity</code>, https://wordpress.org/plugins/search/gravity+forms+recaptcha/ or try it yourself: <code>wp plugin install gravityformsrecaptcha</code>
 +
* Supposingly, it could be installed through <code>wp gf install gravityformsrecaptcha</code>. I suspect you need to always supply the key for Gravity Forms itself (not for the add-on, if there is such a thing). See [[Wp gf install (WP-CLI)]] for details.
  
Voorbeelden:
+
After installation, the add-on does appear amongst plugins:
  
 
<pre>
 
<pre>
# Returns number of entries for form 1
+
$ wp plugin list | grep gravity
########################################
 
#
 
wp gf entry list 1 --format="count"
 
 
 
 
 
# Return first 20 entry id's form 1
 
########################################
 
#
 
# The option --format="ids" is hardly mentioned on their help page https://docs.gravityforms.com/managing-entries
 
# and completely not on the inline help, eventhough it's crucial for me to automatically delete entries
 
#
 
wp gf entry list 1 --format="ids"
 
 
 
  
# Return all entry id's form 1
+
gravityforms         active none 2.6.7
########################################
+
gravityformscli         active none 1.4
#
+
gravityformsrecaptcha active none 1.1
wp gf entry list 1 --format="ids" --page_size=100000
 
 
</pre>
 
</pre>
  
=== wp gf field ===
+
== See also ==
=== wp gf form ===
 
=== wp gf form create ===
 
=== wp gf form delete ===
 
=== wp gf form edit ===
 
 
 
De helptekst is niet behulpzaam. Dit is de syntaxis:
 
 
 
<code>
 
wp gf form edit [form-id]
 
</code>
 
 
 
Vervolgens start een editor om een JSON-representatie van het formulier te bewerken.
 
 
 
=== wp gf form export ===
 
=== wp gf form field ===
 
=== wp gf form form_list ===
 
=== wp gf form get ===
 
=== wp gf form import ===
 
=== wp gf form notification ===
 
=== wp gf form update ===
 
 
 
=== wp gf install ===
 
 
 
=== wp gf license ===
 
 
 
=== wp gf notification ===
 
 
 
=== wp gf setup ===
 
 
 
=== wp gf tool ===
 
 
 
=== wp gf update ===
 
 
 
=== wp gf version ===
 
 
 
== Zie ook ==
 
 
 
* [[WP-CLI (commando's)]]
 
 
 
== Bronnen ==
 
  
* https://docs.gravityforms.com/category/add-ons-gravity-forms/ - Een indrukwekkende lijst van ''add-ons''
+
* [[Wp gf (WP-CLI) | wp gf]]
* https://docs.gravityforms.com/category/add-ons-gravity-forms/wp-cli-add-on/ - WP-CLI Add-on
+
* [[Wp gf install (WP-CLI)]]

Huidige versie van 31 okt 2022 om 12:43

Sinds 2020 is Gravity Forms m'n standaard formulieren-plugin, op advies van een specialist. Ik denk dat ik 'm ok vind. De belangrijkste dingen gaan heel soepel. Waarschijnlijk zijn het de nag-screens om maar de betaalde versie te kopen, waar ik het meeste moeite mee heb. En dat het de complete backend-interface van WordPress overneemt. Verder is-ie prima.

Dit artikel gaat tot op heden (okt. 2021) vrijwel uitsluitend over de WP-CLI-commando's om Gravity Forms en bijbehorende formulieren te beheren.

Licensering

Het is een betaalde plugin. Zonder licentie doet-ie nix.

  • Als ik sites kloon, is de gekloonde licentie ok - Itt. tot een andere plugin (naam vergeten) waarbij de licentie URL-afhankelijk was
  • Als ik alleen de plugin kopiëer en plak, is de licentie niet ok.

WP-CLI

Installation

Gravity Forms has quite a library of WP-CLI commands, but these need to be separately installed as a plugin:

wp plugin install gravityformscli --activate

Disable or enable a form?

I have the impression that you cannot disable or enable a form through a dedicated WP-CLI command.

Example using SQL:

cd $site_path
sql="update wp_gf_form set is_active=0 where id=1"
wp db query "$sql"

Database-model

Basic form settings - wp_gf_form

Basic form settings are stored in table wp_gf_form. Example:

$ select * from wp_gf_form;

+----+----------------+---------------------+--------------+-----------+----------+
| id | title          | date_created        | date_updated | is_active | is_trash |
+----+----------------+---------------------+--------------+-----------+----------+
|  1 | Contact form   | 2019-08-05 08:38:28 | NULL         |         0 |        0 |
|  3 | Selection Tool | 2020-12-23 09:01:02 | NULL         |         1 |        0 |
+----+----------------+---------------------+--------------+-----------+----------+

Fields:

* id             MEDIUMINT(10)   PK   NN   UN   AI
* title          VARCHAR(150)         NN
* date_created   DATETIME             NN
* data_updated   DATETIME                            Default: NULL
* is_active      TINYINT(10)          NN             Default: 1
* is_trash       TINYINT(10)          NN             Default: 0

Form definitions - wp_gf_form_meta

Volledige definities van formulieren vind je in tabel wp_gf_form_meta. Ik denk dat het JSON-code is. Voordeel boven reguliere serialised data: Het aantal bytes per veld is niet vastgelegd. Je kunt het dus veel gemakkelijker zelf bewerken. De verschillende kolommen:

  • form_id: Dezelfde formulier-ID als via de WP-CLI
  • display_meta: Lijkt dezelfde formulierdefinitie te zijn als die je krijgt via WP-CLI
  • entries_grid_meta: Onduidelijke serialised data - Heeft ogenschijnlijk gelukkig niets te maken met formulier zelf
  • confirmations: Complete definities van verzend-bevestigingen
  • notifications: Complete definities van de notificatie-emails die naar beheerders wordt gestuurd.

ReCAPTCHA add-on

Google's ReCAPTCHA can be integrated into forms:

After installation, the add-on does appear amongst plugins:

$ wp plugin list | grep gravity

gravityforms	        active	none	2.6.7
gravityformscli	        active	none	1.4
gravityformsrecaptcha	active	none	1.1

See also