Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/classes/Permalink.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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 +