PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 114
Lasso Lite – Affiliate Link Manager & Product Displays v114
158 157 155 156 154 153 152 151 150 149 148 trunk 0.9.9 104 105 106 107 108 109 110 111 112 113 114 115 All 57 releases
simple-urls / pages / groups / class-ajax.php

class-ajax.php in Lasso Lite – Affiliate Link Manager & Product Displays 114, at pages/groups/class-ajax.php

155 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Group - Ajax.
4 *
5 * @package Pages
6 */
7
8 namespace LassoLite\Pages\Groups;
9
10 use LassoLite\Admin\Constant;
11 use LassoLite\Classes\Affiliate_Link;
12 use LassoLite\Classes\Enum;
13 use LassoLite\Classes\Group;
14 use LassoLite\Classes\Helper;
15 use LassoLite\Classes\Page;
16 use LassoLite\Classes\SURL;
17
18 /**
19 * Lasso Group - Ajax.
20 */
21 class Ajax {
22 /**
23 * Declare "Lasso ajax requests" to WordPress.
24 */
25 public function register_hooks() {
26 add_action( 'wp_ajax_lasso_lite_store_category', array( $this, 'lasso_lite_store_category' ) );
27 add_action( 'wp_ajax_lasso_lite_group_get_list', array( $this, 'lasso_lite_group_get_list' ) );
28 add_action( 'wp_ajax_lasso_lite_group_get_links', array( $this, 'lasso_lite_group_get_links' ) );
29 add_action( 'wp_ajax_lasso_lite_delete_category', array( $this, 'lasso_lite_delete_category' ) );
30 }
31
32 /**
33 * Add or update a group
34 */
35 public function lasso_lite_store_category() {
36 $data = Helper::POST(); // phpcs:ignore
37
38 if ( 0 === (int) $data['cat_id'] ) {
39 $result = wp_insert_term(
40 $data['cat_name'], // ? the term
41 Constant::LASSO_CATEGORY, // ? the taxonomy
42 array(
43 'description' => $data['cat_desc'],
44 )
45 );
46 } else {
47 $result = wp_update_term(
48 $data['cat_id'], // ? the term
49 Constant::LASSO_CATEGORY, // ? the taxonomy
50 array(
51 'name' => $data['cat_name'],
52 'description' => $data['cat_desc'],
53 )
54 );
55 }
56
57 if ( $result && ! is_wp_error( $result ) ) {
58 $result = array(
59 'status' => 1,
60 'link' => Page::get_page_url( Helper::add_prefix_page( Enum::PAGE_GROUP_DETAIL ) ) . '&post_id=' . $result['term_id'] . '&subpage=' . Enum::SUB_PAGE_GROUP_DETAIL,
61 'data' => $data,
62 'cat_id' => $result['term_id'] ?? 0,
63 );
64 $result['msg'] = 'Group is saved.';
65 } else {
66 $result = array(
67 'status' => 0,
68 'link' => Page::get_page_url( Helper::add_prefix_page( Enum::PAGE_GROUP_DETAIL ) ),
69 'data' => $data,
70 'cat_id' => 0,
71 );
72 $result['msg'] = 'Unexpected error!';
73 }
74
75 wp_send_json_success( $result );
76 }
77
78 /**
79 * Get list links linked to group
80 */
81 public function lasso_lite_group_get_list() {
82 $post = Helper::POST();
83 $page = $post['page'] ?? 1;
84 $keyword = $post['keyword'] ?? '';
85 $list = Group::get_list( $page, $keyword, '1=1', Enum::LIMIT_ON_PAGE );
86 $output = array();
87 foreach ( $list as $group ) {
88 $output[] = array(
89 'title' => $group->get_post_title(),
90 'description' => $group->get_description(),
91 'count' => $group->get_count(),
92 'link_detail' => $group->get_link_detail(),
93 );
94 }
95
96 $data['output'] = $output;
97 $data['total'] = Group::total();
98 $data['limit_on_page'] = Enum::LIMIT_ON_PAGE;
99 $data['page'] = $page;
100
101 wp_send_json_success( $data );
102 }
103
104 /**
105 * Get urls of group
106 */
107 public function lasso_lite_group_get_links() {
108 $post = Helper::POST();
109 $group_id = $post['group_id'] ?? '';
110 $group = Group::get_by_id( $group_id );
111 if ( $group ) {
112 $urls = SURL::get_urls_by_group( $group );
113 $output = array();
114 foreach ( $urls as $url ) {
115 $lasso_url = Affiliate_Link::get_lasso_url( $url->get_id() );
116 $output[] = array(
117 'post_id' => $url->get_id(),
118 'image_src' => $lasso_url->image_src,
119 'link_url_detail' => $lasso_url->edit_link,
120 'link_name' => $lasso_url->name,
121 'permalink' => $lasso_url->permalink,
122 );
123 }
124 $data['output'] = $output;
125 wp_send_json_success( $data );
126 }
127 }
128
129 /**
130 * Delete group
131 */
132 public function lasso_lite_delete_category() {
133 $post = wp_unslash( $_POST ); // phpcs:ignore
134 $post_id = $post['cat_id'];
135
136 wp_delete_term( $post_id, Constant::LASSO_CATEGORY );
137
138 $redirect_link = add_query_arg(
139 array(
140 'post_type' => Constant::LASSO_POST_TYPE,
141 'page' => Helper::add_prefix_page( Enum::PAGE_GROUPS ),
142 ),
143 admin_url( 'edit.php' )
144 );
145
146 wp_send_json_success(
147 array(
148 'data' => 1,
149 'post' => $post,
150 'redirect_link' => $redirect_link,
151 )
152 );
153 }
154 }
155