This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
1 | <?php |
||
2 | /** |
||
3 | * Admin View: Page - Addons |
||
4 | * |
||
5 | */ |
||
6 | if ( ! defined( 'ABSPATH' ) ) { |
||
7 | exit; |
||
8 | } |
||
9 | add_ThickBox(); |
||
10 | ?> |
||
11 | <div class="wrap wpi_addons_wrap"> |
||
12 | <h1><?php echo esc_html( get_admin_page_title() ); ?></h1> |
||
13 | |||
14 | <?php if ( $tabs ) { ?> |
||
15 | <nav class="nav-tab-wrapper wpi-nav-tab-wrapper"> |
||
16 | <?php |
||
17 | foreach ( $tabs as $name => $label ) { |
||
18 | echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . esc_html( $label ) . '</a>'; |
||
19 | } |
||
20 | do_action( 'wpi_addons_tabs' ); |
||
21 | ?> |
||
22 | </nav> |
||
23 | |||
24 | <?php |
||
25 | |||
26 | if ( $current_tab == 'membership' ) { |
||
27 | |||
28 | ?> |
||
29 | |||
30 | <div class="wpi-membership-tab-conatiner"> |
||
31 | <div class="membership-content"> |
||
32 | <!-- |
||
33 | <h2>With our WPInvoicing Membership you get access to all our products!</h2> |
||
34 | <p><a class="button button-primary" href="https://wpinvoicing.com/downloads/membership/">View Memberships</a></p>--> |
||
35 | <?php if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) { ?> |
||
36 | <h2><?php esc_html_e( 'Have a membership key?', 'invoicing' ); ?></h2> |
||
37 | <p> |
||
38 | <?php |
||
39 | $wpeu_admin = new External_Updates_Admin( 'wpinvoicing.com', '1' ); |
||
0 ignored issues
–
show
|
|||
40 | echo $wpeu_admin->render_licence_actions( 'wpinvoicing.com', 'membership', array( 95, 106, 108, 12351 ) ); |
||
41 | ?> |
||
42 | </p> |
||
43 | <?php } ?> |
||
44 | |||
45 | <div class="membership-cta-contet"> |
||
46 | <div class="main-cta"> |
||
47 | <h2><?php esc_html_e( 'Membership benefits Include:', 'invoicing' ); ?></h2> |
||
48 | <div class="feature-list"> |
||
49 | <ul> |
||
50 | <?php |
||
51 | $addon_obj = new WPInv_Admin_Addons(); |
||
52 | if ( $addons = $addon_obj->get_section_data( 'addons' ) ) { |
||
53 | foreach ( $addons as $addon ) { |
||
54 | echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>'; |
||
55 | } |
||
56 | } |
||
57 | ?> |
||
58 | </ul> |
||
59 | |||
60 | <div class="feature-cta"> |
||
61 | <h3><?php esc_html_e( 'Membership Starts from', 'invoicing' ); ?></h3> |
||
62 | <h4>$99</h4> |
||
63 | <a href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_attr_e( 'Buy Membership', 'invoicing' ); ?></a> |
||
64 | </div> |
||
65 | <h3><?php esc_html_e( 'Included Gateways:', 'invoicing' ); ?></h3> |
||
66 | <ul> |
||
67 | <?php |
||
68 | if ( $addons = $addon_obj->get_section_data( 'gateways' ) ) { |
||
69 | foreach ( $addons as $addon ) { |
||
70 | echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>'; |
||
71 | } |
||
72 | } |
||
73 | ?> |
||
74 | </ul> |
||
75 | </div> |
||
76 | |||
77 | |||
78 | </div> |
||
79 | <div class="member-testimonials"> |
||
80 | <h3>Testimonials</h3> |
||
81 | <div class="testimonial-content"> |
||
82 | <div class="t-image"> |
||
83 | <?php |
||
84 | echo '<img src="' . esc_url( plugins_url( 'images/t-image2.png', dirname( __FILE__ ) ) ) . '" > '; |
||
85 | ?> |
||
86 | </div> |
||
87 | <div class="t-content"> |
||
88 | <p> |
||
89 | It works perfectly right out of the box and above all it’s VAT compliant, something crucial for everyone doing business with EU B2C and B2B customers.<br><br> |
||
90 | |||
91 | Then I had a minor issue which required their support and they delivered an unparalleled example of how excellent support works.<br><br> |
||
92 | |||
93 | Response was super fast, they analyzed the issue, delivered a patch in record time and solved this issue for good in the next release.<br><br> |
||
94 | |||
95 | Many commercial plugins and theme companies from the WordPress scene should learn from them. |
||
96 | </p> |
||
97 | <p><strong>Pedstone </strong> (@pedstone)</p> |
||
98 | </div> |
||
99 | </div> |
||
100 | |||
101 | <div class="testimonial-content"> |
||
102 | <div class="t-image"> |
||
103 | <?php |
||
104 | echo '<img src="' . esc_url( plugins_url( 'images/t-image1.png', dirname( __FILE__ ) ) ) . '" > '; |
||
105 | ?> |
||
106 | </div> |
||
107 | <div class="t-content"> |
||
108 | <p> |
||
109 | I have been looking for a basic invoicing system that will allow recurring invoices. |
||
110 | This plugin is far from basic, with some nice in-depth options yet a great easy to use interface.<br><br> |
||
111 | |||
112 | I tried numerous plugins in an attempt to give me what I needed, this is by far the best and there was no need to buy premium plugins to get the features I required.<br><br> |
||
113 | Great job so far guys, can’t wait to see where this goes! |
||
114 | </p> |
||
115 | <p><strong>Coldcutt </strong>(@coldcutt)</p> |
||
116 | </div> |
||
117 | </div> |
||
118 | </div> |
||
119 | <div class="member-footer"> |
||
120 | <a class="footer-btn" href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_html_e( 'Buy Membership', 'invoicing' ); ?></a> |
||
121 | <a class="footer-link" href="post-new.php?post_type=wpi_invoice"><?php esc_html_e( 'Create Invoice', 'invoicing' ); ?></a> |
||
122 | </div> |
||
123 | </div> |
||
124 | |||
125 | |||
126 | </div> |
||
127 | </div> |
||
128 | <?php |
||
129 | } else { |
||
130 | $installed_plugins = get_plugins(); |
||
131 | $addon_obj = new WPInv_Admin_Addons(); |
||
132 | if ( $addons = $addon_obj->get_section_data( $current_tab ) ) : |
||
133 | //print_r($addons); |
||
134 | ?> |
||
135 | <ul class="wpi-products"> |
||
136 | <?php |
||
137 | foreach ( $addons as $addon ) : |
||
138 | if ( 965 == $addon->info->id ) { |
||
139 | continue;}// don't show quote add on |
||
140 | ?> |
||
141 | <li class="wpi-product"> |
||
142 | <div class="wpi-product-title"> |
||
143 | <h3> |
||
144 | <?php |
||
145 | if ( ! empty( $addon->info->excerpt ) ) { |
||
146 | wpi_help_tip( $addon->info->excerpt, false, false, true ); |
||
147 | } |
||
148 | echo esc_html( $addon->info->title ); |
||
149 | ?> |
||
150 | </h3> |
||
151 | </div> |
||
152 | |||
153 | <span class="wpi-product-image"> |
||
154 | <?php if ( ! empty( $addon->info->thumbnail ) ) : ?> |
||
155 | <img src="<?php echo esc_attr( $addon->info->thumbnail ); ?>"/> |
||
156 | <?php |
||
157 | endif; |
||
158 | |||
159 | if ( 'stripe-payment-gateway' == $addon->info->slug ) { |
||
160 | $addon->info->slug = 'getpaid-stripe-payments'; |
||
161 | $addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/'; |
||
162 | } |
||
163 | elseif( 'wallet' == $addon->info->slug ){ |
||
164 | $addon->info->slug = 'getpaid-wallet'; |
||
165 | $addon->info->link = 'https://wordpress.org/plugins/getpaid-wallet/'; |
||
166 | } |
||
167 | elseif( 'item-inventory' == $addon->info->slug ){ |
||
168 | $addon->info->slug = 'getpaid-item-inventory'; |
||
169 | $addon->info->link = 'https://wordpress.org/plugins/getpaid-item-inventory/'; |
||
170 | } |
||
171 | |||
172 | if ( isset( $addon->info->link ) && substr( $addon->info->link, 0, 21 ) === 'https://wordpress.org' ) { |
||
173 | echo '<a href="' . esc_url( admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug ) ) . '&width=770&height=660&TB_iframe=true" class="thickbox" >'; |
||
174 | echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>'; |
||
175 | echo '</a>'; |
||
176 | } elseif ( isset( $addon->info->link ) && ( substr( $addon->info->link, 0, 23 ) === 'https://wpinvoicing.com' || substr( $addon->info->link, 0, 21 ) === 'https://wpgetpaid.com' ) ) { |
||
177 | if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) { |
||
178 | $url = admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true' ); |
||
179 | } else { |
||
180 | // if installed show activation link |
||
181 | if ( isset( $installed_plugins['wp-easy-updates/external-updates.php'] ) ) { |
||
182 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation'; |
||
183 | } else { |
||
184 | $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external'; |
||
185 | } |
||
186 | } |
||
187 | echo '<a href="' . esc_url( $url ) . '" class="thickbox">'; |
||
188 | echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>'; |
||
189 | echo '</a>'; |
||
190 | } |
||
191 | |||
192 | ?> |
||
193 | |||
194 | </span> |
||
195 | |||
196 | |||
197 | <span class="wpi-product-button"> |
||
198 | <?php |
||
199 | $addon_obj->output_button( $addon ); |
||
200 | ?> |
||
201 | </span> |
||
202 | |||
203 | <span class="wpi-price"><?php //print_r($addon); //echo wp_kses_post( $addon->price ); ?></span></li><?php endforeach; ?></ul> |
||
204 | <?php |
||
205 | endif; |
||
206 | } |
||
207 | } |
||
208 | ?> |
||
209 | |||
210 | |||
211 | <div class="clearfix" ></div> |
||
212 | |||
213 | <?php if ( $current_tab == 'addons' ) { ?> |
||
214 | <p><?php printf( esc_attr__( 'All of our Addons can be found on wpGetPaid.com here: %sInvoicing Addons%s', 'invoicing' ), '<a href="https://wpinvoicing.com/downloads/category/addons/">','</a>' ); ?></p> |
||
215 | <?php } if ( $current_tab == 'gateways' ) { ?> |
||
216 | <p><?php printf( esc_attr__( 'All of our Payment Gateways can be found on wpGetPaid.com here: %sGetPaid Payment Gateways %s', 'invoicing' ), '<a href="https://wpinvoicing.com/downloads/category/gateways/">','</a>' ); ?></p> |
||
217 | <?php } ?> |
||
218 | |||
219 | <div id="wpi-wpeu-required-activation" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post( sprintf( __( "The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s'>activate</a> it now.", 'invoicing' ), wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=wp-easy-updates/external-updates.php' ), 'activate-plugin_wp-easy-updates/external-updates.php' ) ) ); ?></span></div> |
||
220 | <div id="wpi-wpeu-required-for-external" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post( sprintf( __( "The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s' onclick='window.open(\"https://wpeasyupdates.com/wp-easy-updates.zip\", \"_blank\");' >download</a> and install it now.", 'invoicing' ), admin_url( 'plugin-install.php?tab=upload&wpeu-install=true' ) ) ); ?></span></div> |
||
221 | <div id="wpeu-licence-popup" style="display:none;"> |
||
222 | <span class="wpi-notification noti-white"> |
||
223 | <h3 class="wpeu-licence-title"><?php esc_html_e( 'Licence key', 'invoicing' ); ?></h3> |
||
224 | <input class="wpeu-licence-key" type="text" placeholder="<?php esc_attr_e( 'Enter your licence key', 'invoicing' ); ?>"> <button class="button-primary wpeu-licence-popup-button" ><?php esc_html_e( 'Install', 'invoicing' ); ?></button> |
||
225 | <br> |
||
226 | <?php |
||
227 | printf( esc_html__( '%1$sFind your licence key here%2$s OR %3$sBuy one here%4$s', 'invoicing' ), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>' ); |
||
228 | ?> |
||
229 | </span> |
||
230 | </div> |
||
231 | |||
232 | </div> |
||
233 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths