Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/classes/Permalink.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Manage permalink update
4
+
*
5
+
* @package Tutor
6
+
* @author Themeum <support@themeum.com>
7
+
* @link https://themeum.com
8
+
* @since 2.6.0
9
+
*/
10
+
11
+
namespace TUTOR;
12
+
13
+
if ( ! defined( 'ABSPATH' ) ) {
14
+
exit;
15
+
}
16
+
17
+
/**
18
+
* Permalink Class
19
+
*
20
+
* @since 2.6.0
21
+
*/
22
+
class Permalink {
23
+
24
+
const TRANS_KEY = 'tutor_permalink_update_required';
25
+
26
+
/**
27
+
* Register hooks
28
+
*
29
+
* @since 2.6.0
30
+
*
31
+
* @return void
32
+
*/
33
+
public function __construct() {
34
+
add_action( 'init', array( $this, 'update_permalink' ) );
35
+
36
+
add_action( 'tutor_setup_finished', array( $this, 'set_permalink_flag' ) );
37
+
38
+
add_action( 'tutor_option_course_permalink_base_changed', array( $this, 'listen_tutor_setting_changes' ), 10, 2 );
39
+
add_action( 'tutor_option_lesson_permalink_base_changed', array( $this, 'listen_tutor_setting_changes' ), 10, 2 );
40
+
add_action( 'tutor_option_quiz_permalink_base_changed', array( $this, 'listen_tutor_setting_changes' ), 10, 2 );
41
+
add_action( 'tutor_option_assignment_permalink_base_changed', array( $this, 'listen_tutor_setting_changes' ), 10, 2 );
42
+
}
43
+
44
+
/**
45
+
* Check permalink update is required or not.
46
+
*
47
+
* @since 2.6.0
48
+
*
49
+
* @return bool
50
+
*/
51
+
public static function update_required() {
52
+
return (bool) get_transient( self::TRANS_KEY );
53
+
}
54
+
55
+
/**
56
+
* Set permalink update required flag
57
+
*
58
+
* @since 2.6.0
59
+
*
60
+
* @return void
61
+
*/
62
+
public static function set_permalink_flag() {
63
+
set_transient( self::TRANS_KEY, true, HOUR_IN_SECONDS );
64
+
}
65
+
66
+
/**
67
+
* Listen tutor settings changes to update permalink.
68
+
*
69
+
* @since 2.6.0
70
+
*
71
+
* @param mixed $from from.
72
+
* @param mixed $to to.
73
+
*
74
+
* @return void
75
+
*/
76
+
public function listen_tutor_setting_changes( $from, $to ) {
77
+
if ( $from !== $to ) {
78
+
self::set_permalink_flag();
79
+
}
80
+
}
81
+
82
+
/**
83
+
* Update permalink when required.
84
+
*
85
+
* @since 2.6.0
86
+
*
87
+
* @return void
88
+
*/
89
+
public function update_permalink() {
90
+
if ( ! self::update_required() ) {
91
+
return;
92
+
}
93
+
94
+
update_option( 'permalink_structure', '/%postname%/' );
95
+
flush_rewrite_rules();
96
+
97
+
delete_transient( self::TRANS_KEY );
98
+
}
99
+
100
+
}
101
+