-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocs-viewer.php
112 lines (103 loc) · 4.81 KB
/
docs-viewer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
/*
Plugin Name: Docs Viewer Add-On for WP Job Openings
Plugin URI: https://wordpress.org/plugins/docs-viewer-add-on-for-wp-job-openings/
Description: Docs Viewer is an add-on for WP Job Openings plugin. This plugin allows you to view the applicant resume from admin panel.
Author: AWSM Innovations
Author URI: https://awsm.in/
Version: 1.0
Licence :GPLv2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text domain : docs-viewer-add-on-for-wp-job-openings
Domain Path: /languages
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if( ! defined( 'AWSM_JOBS_MAIN_PLUGIN' ) ) {
define( 'AWSM_JOBS_MAIN_PLUGIN', 'wp-job-openings/wp-job-openings.php' );
}
class AWSM_Job_Openings_Docs_Viewer {
private static $_instance = null;
public static function init() {
if( is_null( self::$_instance ) ) {
self::$_instance = new self();
}
return self::$_instance;
}
public function __construct() {
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
add_action( 'add_meta_boxes', array( $this, 'register_meta_boxes' ) );
add_action( 'admin_init', array( $this, 'handle_plugin_activation' ) );
}
public function load_textdomain() {
load_plugin_textdomain( 'docs-viewer-add-on-for-wp-job-openings', false, basename( dirname( __FILE__ ) ) . '/languages' );
}
public function register_meta_boxes() {
add_meta_box( 'awsm-jobs-resume-viewer', esc_html__( 'Resume Preview', 'docs-viewer-add-on-for-wp-job-openings' ), array( $this, 'docs_viewer_handle' ), 'awsm_job_application', 'advanced', 'low' );
}
public function docs_viewer_handle(){
$awsm_application_id = get_post_meta( get_the_ID(), 'awsm_attachment_id', true );
$attachment_url = wp_get_attachment_url( intval( $awsm_application_id ) );
if ( $attachment_url ) :
?>
<iframe src="<?php echo esc_url( 'https://docs.google.com/viewer?embedded=true&url=' . $attachment_url ); ?>" style="width: 100%; height: 400px; border: none;">
</iframe>
<?php
else :
?>
<div class="awsm-resume-none">
<h2><strong><?php esc_html_e( 'No resume to preview. File not found!', 'docs-viewer-add-on-for-wp-job-openings' ); ?></strong></h2>
</div>
<?php
endif;
}
public function get_main_plugin_activation_link() {
$content = $link_action = $action_url = $link_class = '';
$plugin_arr = explode( '/', esc_html( AWSM_JOBS_MAIN_PLUGIN ) );
$plugin_slug = $plugin_arr[0];
$installed_plugin = get_plugins( '/' . $plugin_slug );
if ( empty( $installed_plugin ) ) {
if ( get_filesystem_method( array(), WP_PLUGIN_DIR ) === 'direct' ) {
$link_action = esc_html__( 'Install', 'docs-viewer-add-on-for-wp-job-openings' );
$action_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $plugin_slug ), 'install-plugin_' . $plugin_slug );
$link_class = ' install-now';
}
} else {
if( is_plugin_inactive( AWSM_JOBS_MAIN_PLUGIN ) ) {
$link_action = esc_html__( 'Activate', 'docs-viewer-add-on-for-wp-job-openings' );
$action_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . AWSM_JOBS_MAIN_PLUGIN ), 'activate-plugin_' . AWSM_JOBS_MAIN_PLUGIN );
$link_class = ' activate-now';
}
}
if( ! empty( $link_action ) ) {
$content = sprintf( '<a href="%2$s" class="button button-small%3$s">%1$s</a>', $link_action, esc_url( $action_url ), esc_attr( $link_class ) );
}
return $content;
}
public function handle_plugin_activation(){
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( is_plugin_inactive( AWSM_JOBS_MAIN_PLUGIN ) || ! class_exists( 'AWSM_Job_Openings' ) ) {
if( isset( $_GET['action'] ) ) {
if( $_GET['action'] == 'install-plugin' ) {
return;
}
}
if( ! current_user_can( 'install_plugins' ) ) {
return;
}
add_action( 'admin_notices', function() {
?>
<div class="updated error">
<p>
<?php
printf( esc_html__( 'The plugin %2$s needs the plugin %1$s active. %4$s Please %3$s %1$s', 'docs-viewer-add-on-for-wp-job-openings' ), '<strong>"WP Job Openings"</strong>', '<strong>"Docs Viewer Add-On for WP Job Openings"</strong>', $this->get_main_plugin_activation_link(), '<br />' );
?>
</p>
</div>
<?php
});
}
}
}
add_action( 'plugins_loaded', 'AWSM_Job_Openings_Docs_Viewer::init' );