Newer
Older
[](https://travis-ci.org/calderawp/caldera-forms-query)
This library provides for developer-friendly ways to query for or delete Caldera Forms entry data.
## Why?
* [To provide the types of queries we need for reporting and deleting data in order to add GDPR compliance to Caldera Forms]https://github.com/CalderaWP/Caldera-Forms/issues/2108
* To provide the types of queries we need for improving Caldera Forms features such as entry viewer, entry export, entry editing and Connected Forms.
## Install
`composer require calderawp/caldera-forms-query`
## Status
* Works
* Does not yet select/delete by date range
* **Prepared SQL needs to be sanitized better.**
```php
/**
* Examples of simple queries
*
* Using the class: \calderawp\CalderaFormsQuery\Features\FeatureContainer
* Via the static accessor function: calderawp\CalderaFormsQueries\CalderaFormsQueries()
*/
/** First make the function usable without a full namespace */
use function calderawp\CalderaFormsQueries\CalderaFormsQueries;
/** Do Some Queries */
//Select all data by user ID
$entries = CalderaFormsQueries()->selectByUserId(42);
//Select all entries that have a field whose slug is "email" and the value of that field's value is "delete@please.eu"
$entries = CalderaFormsQueries()->selectByFieldValue( 'email', 'delete@please.eu' );
//Select all entries that do not have field whose slug is "size" and the value of that field's value is "big"
$entries = CalderaFormsQueries()->selectByFieldValue( 'size', 'big', false );
//Delete all data by Entry ID
CalderaFormsQueries()->deleteByEntryIds([1,1,2,3,5,8,42]);
//Delete all data by User ID
CalderaFormsQueries()->deleteByUserId(42);
```
## Development
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
### Install
Requires git and Composer
* `git clone git@github.com:calderawp/caldera-forms-query.git`
* `cd caldera-forms-query`
* `composer install`
### Local Development Environment
A local development environment is included, and provided. It is used for integration tests. Requires Composer, Docker and Docker Compose.
* Install Local Environment And WordPress "Unit" Test Suite
- `composer wp-install`
You should know have WordPress at http://localhost:8888/
* (re)Start Server: Once server is installed, you can start it again
- `composer wp-start`
### Testing
#### Install
Follow the steps above to create local development environment, then you can use the commands listed in the next section.
#### Use
Run these commands from the plugin's root directory.
* Run All Tests and Code Sniffs and Fixes
- `composer tests`
* Run Unit Tests
- `composer unit-tests`
* Run WordPress Integration Tests
- `composer wp-tests`
* Fix All Code Formatting
- `composer formatting`
## Stuff.
Copyright 2018 CalderaWP LLC. License: GPL v2 or later.