PHP code example of zeek / wp-sentry
1. Go to this page and download the library: Download zeek/wp-sentry library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zeek / wp-sentry example snippets
define( 'WP_SENTRY_PHP_DSN', 'PHP_DSN' );
define( 'WP_SENTRY_ERROR_TYPES', E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_USER_DEPRECATED );
define( 'WP_SENTRY_SEND_DEFAULT_PII', true );
define( 'WP_SENTRY_BROWSER_DSN', 'JS_DSN' );
define( 'WP_SENTRY_BROWSER_TRACES_SAMPLE_RATE', 0.3 );
define( 'WP_SENTRY_VERSION', 'v4.2.0' );
define( 'WP_SENTRY_ENV', 'production' );
/**
* Customize sentry user context.
*
* @param array $user The current sentry user context.
*
* @return array
*/
function customize_sentry_user_context( array $user ) {
return array_merge( $user, array(
'a-custom-user-meta-key' => 'custom value',
));
}
add_filter( 'wp_sentry_user_context', 'customize_sentry_user_context' );
/**
* Customize sentry dsn.
*
* @param string $dsn The current sentry DSN.
*
* @return string
*/
function customize_sentry_dsn( $dsn ) {
return 'https://<key>:<secret>@sentry.io/<project>';
}
add_filter( 'wp_sentry_dsn', 'customize_sentry_dsn' );
/**
* Customize Sentry PHP SDK scope.
*
* @param \Sentry\State\Scope $scope
*
* @return void
*/
function customize_sentry_scope( \Sentry\State\Scope $scope ) {
$scope->setTag('my-custom-tag', 'tag-value');
}
add_filter( 'wp_sentry_scope', 'customize_sentry_scope' );
/**
* Customize sentry options.
*
* @param array $options The current sentry options.
*
* @return array
*/
function customize_sentry_options( \Sentry\Options $options ) {
// Only sample 90% of the events
$options->setSampleRate(0.9);
}
add_filter( 'wp_sentry_options', 'customize_sentry_options' );
/**
* Customize public sentry dsn.
*
* @param string $dsn The current sentry public dsn.
*
* @return string
*/
function customize_public_sentry_dsn( $dsn ) {
return 'https://<key>@sentry.io/<project>';
}
add_filter( 'wp_sentry_public_dsn', 'customize_public_sentry_dsn' );
/**
* Customize public sentry options.
*
* Note: Items prefixed with `regex:` in blacklistUrls and whitelistUrls option arrays
* will be translated into pure RegExp.
*
* @param array $options The current sentry public options.
*
* @return array
*/
function customize_sentry_public_options( array $options ) {
return array_merge( $options, array(
'sampleRate' => '0.5',
'blacklistUrls' => array(
'https://github.com/',
'regex:\\w+\\.example\\.com',
),
));
}
add_filter( 'wp_sentry_public_options', 'customize_sentry_public_options' );
/**
* Customize public sentry context.
*
* @param array $context The current sentry public context.
*
* @return array
*/
function customize_sentry_public_context( array $context ) {
$context['tags']['my-custom-tag'] = 'tag-value';
return $context;
}
add_filter( 'wp_sentry_public_context', 'customize_sentry_public_context' );
define( 'WP_SENTRY_ERROR_TYPES', E_ALL & ~E_NOTICE );
try {
myMethodThatCanThrowAnException();
} catch ( \Exception $e ) {
// We are using wp_sentry_safe to make sure this code runs even if the Sentry plugin is disabled
if ( function_exists( 'wp_sentry_safe' ) ) {
wp_sentry_safe( function ( \Sentry\State\HubInterface $client ) use ( $e ) {
$client->captureException( $e );
} );
}
wp_die( 'There was an error doing this thing you were doing, we have been notified!' );
}
if (function_exists('wp_sentry_safe')) {
wp_sentry_safe(function (\Sentry\State\HubInterface $client) use ($e) {
$client->withScope(function (\Sentry\State\Scope $scope) use ($client, $e) {
$scope->setExtra('user_data', $e->getData());
$client->captureException($e);
});
});
}
$wp_sentry = __DIR__ . '/../plugins/wp-sentry-integration/wp-sentry.php';
if ( ! file_exists( $wp_sentry ) ) {
return;
}
add_action( 'wp_enqueue_scripts', function () {
wp_add_inline_script( 'wp-sentry-browser', 'function wp_sentry_hook(options) { return someCheckInYourCode() ? true : false; }', 'before' );
} );