_/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/LimitStream.php[/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Message.php`/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/MessageTrait.php\/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/MimeType.phpc/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/MultipartStream.php`/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/NoSeekStream.php^/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/PumpStream.phpY/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Query.php[/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Request.php\/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Response.php[/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Rfc7230.phpa/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/ServerRequest.phpZ/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Stream.phpa/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/StreamWrapper.php`/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/UploadedFile.phpa/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/UriComparator.phpa/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/UriNormalizer.php_/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/UriResolver.phpY/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/psr7/src/Utils.phpd/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/guzzle/src/RequestOptions.phpe/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/guzzle/src/RetryMiddleware.phpc/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/guzzle/src/TransferStats.phpg/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/uri-template/src/UriTemplate.php[/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../guzzlehttp/guzzle/src/Utils.phpc/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/guzzle7-adapter/src/Client.phpd/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/guzzle7-adapter/src/Promise.php^/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/httplug/src/Exception.phpd/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/httplug/src/HttpAsyncClient.php_/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/httplug/src/HttpClient.phpe/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/promise/src/FulfilledPromise.php\/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/promise/src/Promise.phpd/var/www/vhosts/regnier.cloud/httpdocs/3rdparty/composer/../php-http/promise/src/RejectedPromise.phpiew “%s”', 'duplicate-post' ), $title ) ), $title ); } } return $title; } /** * Gets the ID of the original post intended to be rewritten with the copy for Rewrite & Republish. * * @param int $post_id The copy post ID. * * @return int The original post id of a copy for Rewrite & Republish. */ public static function get_original_post_id( $post_id ) { return (int) \get_post_meta( $post_id, '_dp_original', true ); } /** * Gets the registered WordPress roles. * * @codeCoverageIgnore As this is a simple wrapper method for a built-in WordPress method, we don't have to test it. * * @return array The roles. */ public static function get_roles() { global $wp_roles; return $wp_roles->get_names(); } /** * Gets the default meta field names to be filtered out. * * @return array The names of the meta fields to filter out by default. */ public static function get_default_filtered_meta_names() { return [ '_edit_lock', '_edit_last', '_dp_original', '_dp_is_rewrite_republish_copy', '_dp_has_rewrite_republish_copy', '_dp_has_been_republished', '_dp_creation_date_gmt', ]; } /** * Gets a Duplicate Post option from the database. * * @param string $option The option to get. * @param string $key The key to retrieve, if the option is an array. * * @return mixed The option. */ public static function get_option( $option, $key = '' ) { $option = \get_option( $option ); if ( ! \is_array( $option ) || empty( $key ) ) { return $option; } if ( ! \array_key_exists( $key, $option ) ) { return ''; } return $option[ $key ]; } /** * Determines if a plugin is active. * * We can't use is_plugin_active because this must work on the frontend too. * * @param string $plugin Path to the plugin file relative to the plugins directory. * * @return bool Whether a plugin is currently active. */ public static function is_plugin_active( $plugin ) { if ( \in_array( $plugin, (array) \get_option( 'active_plugins', [] ), true ) ) { return true; } if ( ! \is_multisite() ) { return false; } $plugins = \get_site_option( 'active_sitewide_plugins' ); return isset( $plugins[ $plugin ] ); } }