PluginProbe
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More / 2.2.0
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More v2.2.0
2.3.0 2.2.0 2.1.1 2.1.0 2.0.0 1.10.0 1.9.1 1.9.0 1.2.1 1.2.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 All 59 releases
storeengine / includes / permalink-rewrite.php

permalink-rewrite.php in StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More 2.2.0, at includes/permalink-rewrite.php

49 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace StoreEngine;
3
4 use StoreEngine\Utils\Helper;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit;
8 }
9
10 class PermalinkRewrite {
11 public static function init() {
12 $self = new self();
13 add_filter( 'query_vars', array( $self, 'register_query_vars' ) );
14 add_action( 'generate_rewrite_rules', array( $self, 'add_rewrite_rules' ) );
15 }
16 public function register_query_vars( $query_vars ) {
17 $query_vars[] = 'storeengine_dashboard_page';
18 $query_vars[] = 'storeengine_dashboard_sub_page';
19 $query_vars[] = 'order_pay';
20 $query_vars[] = 'order_id';
21 $query_vars[] = 'payment-methods';
22 $query_vars[] = 'add-payment-method';
23 $query_vars[] = 'delete-payment-method';
24 $query_vars[] = 'set-default-payment-method';
25 return $query_vars;
26 }
27 public function add_rewrite_rules( $wp_rewrite ) {
28 $new_rules = [];
29 $dashboard_page_id = (int) Helper::get_settings( 'dashboard_page' );
30 $dashboard_page_slug = get_post_field( 'post_name', $dashboard_page_id );
31 $dashboard_pages = Helper::get_frontend_dashboard_menu_items();
32 foreach ( $dashboard_pages as $dashboard_key => $dashboard_page ) {
33 if ( ! empty( $dashboard_page['is_separator'] ) ) {
34 continue;
35 }
36 $new_rules[ "($dashboard_page_slug)/$dashboard_key/?$" ] = 'index.php?pagename=' . $wp_rewrite->preg_index( 1 ) . '&storeengine_dashboard_page=' . $dashboard_key;
37 $new_rules[ "($dashboard_page_slug)/$dashboard_key/(?!page/)(.+?)/?$" ] = 'index.php?pagename=' . $wp_rewrite->preg_index( 1 ) . '&storeengine_dashboard_page=' . $dashboard_key . '&storeengine_dashboard_sub_page=' . $wp_rewrite->preg_index( 2 );
38 $new_rules[ "($dashboard_page_slug)/$dashboard_key/page/([0-9]{1,})/?$" ] = 'index.php?pagename=' . $dashboard_page_slug . '&storeengine_dashboard_page=' . $dashboard_key . '&paged=' . $wp_rewrite->preg_index( 2 );
39 }
40
41 $checkout_page = Helper::get_settings('checkout_page');
42 $checkout_page_slug = get_post_field( 'post_name', $checkout_page );
43 $new_rules[ "($checkout_page_slug)/order-pay/([0-9]+)/?$" ] = 'index.php?pagename=' . $checkout_page_slug . '&order_pay=true&order_id=' . $wp_rewrite->preg_index( 2 );
44
45 $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
46 }
47
48 }
49