Use wordpress nonce functions in a object oriented environment.
Add this package as requirement at your composer.json file and then run 'composer update'
"wberredo/nonce": "1.0.*"
Or directly run
composer require wberredo/nonce
If you want to change some configs before you start to generate nonces, you will use Nonce_Config class.
// set lifetime for 4 hours
Nonce_Config::set_nonce_lifetime( 4 * HOUR_IN_SECONDS );
// set message showed when showAys is called
Nonce_Config::set_error_message( "Are you sure" );
To create a nonce you have to use the Nonce_Generator class and to verify a nonce already created you will need the Nonce_Verifier class.
To generate a nonce
$nonce_gen = new Nonce_Generator( "default-action" );
$nonce = $nonce_gen->generate_nonce();
To generate a URL nonce
// you can also set parameters with set functions
$nonce_gen = new Nonce_Generator();
$complete_url = $nonce_gen
->set_url( "https://github.com/WBerredo" )
->set_action( "default_action" )
->generate_nonce_url();
To retrieve a nonce field.
$nonce_gen = new Nonce_Generator();
$nonceField = $nonce_gen
->set_action( "default_action" )
->generate_nonce_field( "nonce", "referer", "do_not_echo" );
// to print the nonce field you have to set the last param as true
$nonce_gen
->generate_nonce_field( "nonce", "referer", "echo" );
To Display 'Are you sure you want to do this?' message (or the new message set with Nonce_Config#setErrorMessage) to confirm the action being taken.
Nonce_Generator::show_ays( 'action' );
To verify a nonce
if( Nonce_Verifier::verify( $nonce, $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
To verify a URL nonce
if( Nonce_Verifier::verify_url( $complete_url, $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
To tests either if the current request carries a valid nonce, or if the current request was referred from an administration screen
if( Nonce_Verifier::verify_admin_referer( $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
To verify the AJAX request, to prevent any processing of requests which are passed in by third-party sites or systems.
if( Nonce_Verifier::verify_ajax_referer( $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
-
Install PHPUnit. WordPress uses PHPUnit, the standard for unit testing PHP projects. Installation instructions can be found in the PHPUnit manual or on the PHPUnit Github repository.
-
Check out the test repository. The WordPress tests live in the core development repository, at https://develop.svn.wordpress.org/trunk/:
svn co https://develop.svn.wordpress.org/trunk/ wordpress-develop
cd wordpress-develop
-
Create an empty MySQL database. The test suite will delete all data from all tables for whichever MySQL database it is configured. Use a separate database.
-
Set up a config file. Copy wp-tests-config-sample.php to wp-tests-config.php, and enter your database credentials. Use a separate database.
-
Change the path of Wordpress project in the bootstrap.php file of the plugin
/**
* The path to the WordPress tests checkout.
*/
define( 'WP_TESTS_DIR', '/home/berredo/Documents/repository/wordpress/wordpress-develop/tests/phpunit/' );
- Go to plugin's folder
cd vendor/wberredo/nonce
- Run phpunit to test
phpunit