PluginProbe
Translation with DeepL API / trunk
Translation with DeepL API vtrunk
trunk 0.1.20180323 1.0 1.2.5.1 1.5.2.5 1.7.5 2.4.3.12 2.4.3.9 2.4.5
wpdeepl / wpdeepl.php

wpdeepl.php in Translation with DeepL API trunk, at wpdeepl.php

159 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Translation with DeepL API
4 * Description: Get DeepL translation magic right inside your WordPress editor (with a paid DeepL Pro account). This plugin is not affiliated with DeepL SE.
5 * Version: 2.6.2
6 * Plugin Slug: wpdeepl
7 * Author: Fluenx
8 * Author URI: https://www.fluenx.com/
9 * License: GPLv2 or later
10 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 * Text Domain: wpdeepl
12 * Domain Path: /languages
13 */
14
15 //return;
16
17 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
18
19 // exit early
20 $wpdeepl_allow_front_end = filter_var( get_option('wpdeepl_allow_front_end'), FILTER_VALIDATE_BOOLEAN );
21 if( ! $wpdeepl_allow_front_end ) {
22 if ( !function_exists( 'is_admin' ) || !is_admin() )
23 return;
24 }
25
26 //defined( 'WPDEEPL_DEBUG' ) or define( 'WPDEEPL_DEBUG', false ); // Uncomment AND set to true to force debug mode
27 defined( 'WPDEEPL_FLAVOR' ) or define( 'WPDEEPL_FLAVOR', 'free' );
28 defined( 'WPDEEPL_NAME' ) or define( 'WPDEEPL_NAME', plugin_basename( __FILE__ ) );
29 defined( 'WPDEEPL_SLUG' ) or define( 'WPDEEPL_SLUG', 'wpdeepl' );
30 defined( 'WPDEEPL_DIR' ) or define( 'WPDEEPL_DIR', dirname( __FILE__ ) );
31 defined( 'WPDEEPL_PATH' ) or define( 'WPDEEPL_PATH', realpath( __DIR__ ) );
32 defined( 'WPDEEPL_URL' ) or define( 'WPDEEPL_URL', plugins_url( '', __FILE__ ) );
33
34 $wpdeepl_plugin_data = get_file_data( __FILE__, array( 'Version' => 'Version' ), false );
35 defined( 'WPDEEPL_VERSION' ) or define( 'WPDEEPL_VERSION', $wpdeepl_plugin_data['Version'] );
36
37 defined( 'WPDEEPL_DEBUG' ) or define( 'WPDEEPL_DEBUG', false );
38
39 $wpdeepl_upload_dir = wp_upload_dir();
40 defined( 'WPDEEPL_FILES' ) or define( 'WPDEEPL_FILES', trailingslashit( $wpdeepl_upload_dir['basedir'] ) . 'wpdeepl' );
41 defined( 'WPDEEPL_FILES_URL' ) or define( 'WPDEEPL_FILES_URL', trailingslashit( $wpdeepl_upload_dir['baseurl'] ) . 'wpdeepl' );
42
43 function wpdeepl_paths( $paths = array() ) {
44 $paths['deepl_settings'] = array(
45 'files' => WPDEEPL_FILES
46 );
47 return $paths;
48 }
49
50 try {
51 if ( is_admin() || $wpdeepl_allow_front_end ) {
52
53
54 include_once trailingslashit( WPDEEPL_PATH ) . 'deepl-configuration.class.php';
55
56 include_once trailingslashit( WPDEEPL_PATH ) . 'includes/deepl-functions.php';
57 include_once trailingslashit( WPDEEPL_PATH ) . 'includes/deepl-plugin-install.php';
58
59
60 include_once trailingslashit( WPDEEPL_PATH ) . 'modules/deepl-translate-post.php';
61
62 include_once trailingslashit( WPDEEPL_PATH ) . 'settings/wp-improved-settings-api.class.php';
63 include_once trailingslashit( WPDEEPL_PATH ) . 'settings/wp-improved-settings.class.php';
64 include_once trailingslashit( WPDEEPL_PATH ) . 'settings/wp-improved-settings-wpdeepl.class.php';
65
66 include_once trailingslashit( WPDEEPL_PATH ) . 'client/deepl-data.class.php';
67 include_once trailingslashit( WPDEEPL_PATH ) . 'client/deeplapi-functions.php';
68 include_once trailingslashit( WPDEEPL_PATH ) . 'client/deeplapi.class.php';
69 include_once trailingslashit( WPDEEPL_PATH ) . 'client/deeplapi-translate.class.php';
70 include_once trailingslashit( WPDEEPL_PATH ) . 'client/deeplapi-usage.class.php';
71
72 if( is_admin() ) {
73 include_once trailingslashit( WPDEEPL_PATH ) . 'admin/deepl-admin-hooks.php';
74 include_once trailingslashit( WPDEEPL_PATH ) . 'admin/deepl-admin-functions.php';
75 include_once trailingslashit( WPDEEPL_PATH ) . 'admin/deepl-metabox.php';
76 //if( file_exists( trailingslashit( WPDEEPL_PATH ) . 'admin/deepl-elementor.php' ) include_once trailingslashit( WPDEEPL_PATH ) . 'admin/deepl-elementor.php';
77
78 }
79
80 add_filter('zebench_plugins_paths', 'wpdeepl_paths');
81
82 $wpdeepl_customisation_file = trailingslashit( WPDEEPL_PATH ) . 'custom-integration.php';
83 //echo "\n file $wpdeepl_customisation_file / exists ? " . file_exists( $wpdeepl_customisation_file );
84 if ( file_exists( $wpdeepl_customisation_file ) ) {
85 include_once $wpdeepl_customisation_file;
86 }
87 else {
88
89 }
90
91 }
92 } catch ( Exception $exception ) {
93 if ( current_user_can( 'manage_options' ) ) {
94 // En mode debug seulement, logger les erreurs
95 if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
96 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log -- Debug mode only
97 error_log( 'WPDeepL Fatal Error: ' . $exception->getMessage() . ' in ' . $exception->getFile() . ' on line ' . $exception->getLine() );
98 }
99 wp_die(
100 esc_html__( 'Error loading WPDeepL', 'wpdeepl' ),
101 array( 'response' => 500 )
102 );
103 }
104 return;
105 }
106
107
108 //global $DeepLForWordPress; $DeepLForWordPress = new DeepLForWordPress();
109 function deepl_is_plugin_fully_configured() {
110 $WP_Error = new WP_Error();
111
112 if ( count( $WP_Error->get_error_messages() ) ) {
113 return $WP_Error;
114 }
115 return true;
116 }
117
118 if ( !function_exists( 'wpdeepl_debug_display' ) ) {
119 function wpdeepl_debug_display( $e, $txt = '' ) {
120
121 // En mode debug seulement
122 if ( 1 == 1 ) {
123 if ( $txt != '' ) echo esc_html( "<br />\n$txt" );
124 ?>
125 <pre><?php
126 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r -- Debug mode seulement
127 print_r( $e );
128 ?>
129 </pre><?php
130 }
131 }
132 }
133
134 add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'wpdeepl_plugin_action_links' );
135 function wpdeepl_plugin_action_links( $links ) {
136 $links = array_merge(
137 array(
138 '<a href="' . esc_url( admin_url( '/options-general.php?page=deepl_settings' ) ) . '">' . __( 'Settings', 'wpdeepl' ) . '</a>'
139 ),
140 $links
141 );
142 return $links;
143 }
144
145 register_activation_hook( __FILE__, 'deepl_plugin_activate' );
146 function deepl_plugin_activate() {
147 deepl_install_plugin();
148 }
149
150 register_deactivation_hook( __FILE__, 'deepl_plugin_deactivate' );
151 function deepl_plugin_deactivate() {
152 }
153
154 add_action( 'init', 'deepl_init' );
155 function deepl_init() {
156 if ( !is_admin() ) {
157 return;
158 }
159 }