Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
W
WordPress_SexHackMe_Plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SexHackMe
WordPress_SexHackMe_Plugin
Commits
cc2f9052
Commit
cc2f9052
authored
Jul 15, 2022
by
Franco (nextime) Lanza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved several parts to the new structure
parent
c9995f8b
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
117 additions
and
252 deletions
+117
-252
pms_woocommerce_registration_integration.php
deprecated/pms_woocommerce_registration_integration.php
+6
-247
functions-core.php
includes/functions-core.php
+30
-0
sexhackme.php
sexhackme.php
+8
-1
gallery.php
templates/admin/gallery.php
+25
-0
sexhackme.php
templates/admin/sexhackme.php
+3
-0
disclaimer.php
templates/blocks/disclaimer.php
+4
-0
newvideo.php
templates/newvideo.php
+7
-4
video.php
templates/video.php
+3
-0
hls.php
templates/videoplayer/hls.php
+3
-0
xr.php
templates/videoplayer/xr.php
+3
-0
videoaccess.php
templates/widgets/videoaccess.php
+25
-0
No files found.
deprecated/pms_woocommerce_registration_integration.php
View file @
cc2f9052
...
...
@@ -21,255 +21,14 @@
namespace
wp_SexHackMe
;
if
(
!
class_exists
(
'
PmsWoocommerceRegistration
Integration'
))
{
if
(
!
class_exists
(
'
SH_WooCommerce_Registration_
Integration'
))
{
function
get_wc_subscription_products
(
$spid
=
false
)
{
if
(
$spid
)
$meta
=
array
(
'key'
=>
'_pms_woo_subscription_id'
,
'value'
=>
$spid
,
'compare'
=>
'='
,
);
else
$meta
=
array
(
'key'
=>
'_pms_woo_subscription_id'
,
'compare'
=>
'like'
,
);
$args
=
array
(
'posts_per_page'
=>
100
,
'post_type'
=>
'product'
,
'post_status'
=>
'publish'
,
'meta_key'
=>
'_pms_woo_subscription_id'
,
'meta_query'
=>
array
(
$meta
),
);
$query
=
new
\WP_Query
(
$args
);
return
$query
;
}
function
get_wc_subscription_products_priced
(
$price
,
$pid
=
false
)
{
$res
=
array
();
$pages
=
get_wc_subscription_products
(
$pid
);
if
(
$pages
->
have_posts
()
)
{
foreach
(
$pages
->
posts
as
$post
)
{
$product
=
wc_get_product
(
$post
->
ID
);
if
(
is_object
(
$product
)
&&
(
strval
(
$price
)
==
strval
(
$product
->
get_regular_price
())))
{
$res
[]
=
$product
;
}
}
}
return
$res
;
}
class
PmsWoocommerceRegistrationIntegration
class
SH_WooCommerce_Registration_Integration2
{
public
function
__construct
()
{
//$this->addcart = false;
sexhack_log
(
'PmsWoocommerceRegistrationIntegration() Instanced'
);
// Register new endpoint (URL) for My Account page
add_action
(
'init'
,
array
(
$this
,
'add_subscriptions_endpoint'
),
300
);
// Add new QUERY vars
add_filter
(
'query_vars'
,
array
(
$this
,
'subscriptions_query_vars'
),
0
);
// Insert the new endpoint into the My Account menu
add_filter
(
'woocommerce_account_menu_items'
,
array
(
$this
,
'add_subscriptions_link_my_account'
)
);
/* Add content to the new tab
* NOTE: add_action must follow 'woocommerce_account_{your-endpoint-slug}_endpoint' format */
add_action
(
'woocommerce_account_subscriptions_endpoint'
,
array
(
$this
,
'subscriptions_content'
),
50
,
6
);
/* Inject random generate pass as we don't send it from the registration form */
// XXX BUG! we should initialize this when is the right page and the right POST,
// don't be a dick. Don't do it on every fucking page.
// if you look hard enought like really really hard...
// you find a dick pretty much
// everywhere
// if you look hard
// enought
// like really
// really hard
// you find a dick
// pretty much
// everywhere
add_action
(
'init'
,
array
(
$this
,
'gen_random_pwd'
),
5
);
// This need to happen before PMS detect the form at "10" sequence firing
// Sending email with link to set user password
add_action
(
"pms_register_form_after_create_user"
,
array
(
$this
,
"send_register_email_reset_password"
)
);
// Manage manual payments for Paid Member Subscriptions plugin
// ( expecially for new users and change of subscription plan )
add_action
(
'pms_get_redirect_url'
,
array
(
$this
,
'redirect_after_manual_payment'
)
);
// Manage checkout ( as we use only woocommerce for payments )
// XXX This is a dirty hack, we are not going to filter anything!
//add_filter("init", array($this, "redirect_to_checkout") );
// Reorder membership subscription in registration page
//add_action( 'pre_get_posts', array($this, 'sexhack_reorder_membership'), 1 );
}
/*
public function sexhack_reorder_membership($query) {
if ( ! is_admin() && in_array ( $query->get('post_type'), array('pms-subscriptions') ) ) {
$query->set( 'order' , 'asc' );
$query->set( 'orderby', 'price');
}
}
*/
/*
public function add_to_cart()
{
sexhack_log("ADD_TO_CART()");
if($this->addcart)
{
WC()->cart->add_to_cart( $this->addcart );
wp_redirect(wc_get_checkout_url());
}
}
*/
// NOTE: This is the "better way" for the checkout
// redirect (look the following commented function)
public
function
redirect_after_manual_payment
(
$url
)
{
if
(
!
isset
(
$_POST
[
'pay_gate'
]
)
||
$_POST
[
'pay_gate'
]
!=
'manual'
)
return
$url
;
$subscription_plan
=
pms_get_subscription_plan
(
$_POST
[
'subscription_plans'
]);
if
(
!
isset
(
$subscription_plan
->
id
)
||
$subscription_plan
->
price
==
0
)
return
$url
;
else
{
sexhack_log
(
"CHECKOUT: "
);
//sexhack_log($subscription_plan);
$prodid
=
get_option
(
'sexhack-wcpms-'
.
strval
(
$subscription_plan
->
id
),
false
);
$product
=
false
;
if
(
$prodid
)
$product
=
wc_get_product
(
$prodid
);
if
((
$product
)
&&
(
$product
->
get_regular_price
()
==
$subscription_plan
->
price
))
$wcprods
=
array
(
$product
);
else
$wcprods
=
get_wc_subscription_products_priced
(
$subscription_plan
->
price
,
$subscription_plan
->
id
);
sexhack_log
(
$wcprods
);
if
(
count
(
$wcprods
)
>
0
)
{
// XXX we can't use WC() here as this is called in "init", while
// WC() can't be only called after wp_loaded, but here we have an
// immediate redirect, before wp_loaded, so, i can't do it that way.
//$this->addcart = $wcprods[0]->get_id();
//add_action('wp_loaded', array($this, 'add_to_cart'));
//WC()->cart->add_to_cart( $this->addcart );
return
wc_get_checkout_url
()
.
"?add-to-cart="
.
$wcprods
[
0
]
->
get_id
()
.
"&quantity=1"
;
}
return
$url
;
//home_url('/payment-info');
}
}
// XXX For Paid Membership subscription....
// Depends on it!
// XXX We found a better way.
/*
public function redirect_to_checkout()
{
//pms_gateway_payment_id=NDQ&pmsscscd=c3Vic2NyaXB0aW9uX3BsYW5z&pms_gateway_payment_action=cmVnaXN0ZXI
//$pid = 46 $pact = register $scscd = subscription_plans
if(isset($_GET['pms_gateway_payment_id'])
//&& is_integer(base64_decode($_GET['pms_gateway_payment_id']))
&& isset($_GET['pms_gateway_payment_action'])
&& isset($_GET['pmsscscd'])
&& (base64_decode($_GET['pmsscscd'])=="subscription_plans")
)
{
// Here we go we have to pay!
$pid = base64_decode($_GET['pms_gateway_payment_id']);
$pact = base64_decode($_GET['pms_gateway_payment_action']);
$scscd = base64_decode($_GET['pmsscscd']);
sexhack_log("ANTANI! $pid $pact $scscd");
switch($pact)
{
case 'register':
$payment = pms_get_payment($pid);
sexhack_log("PAYMENT: ");
sexhack_log($payment);
break;
default:
sexhack_log("UNMANAGED REQUEST WITH PACT: $pact in redirect_to_checkout()");
}
}
} */
// Register new endpoint (URL) for My Account page
// Note: Re-save Permalinks or it will give 404 error
function
add_subscriptions_endpoint
()
{
global
$wp_rewrite
;
sexhack_log
(
"SUBSCRIPTION ENDPOINT ADDED"
);
add_rewrite_endpoint
(
'subscriptions'
,
EP_ROOT
|
EP_PAGES
);
$rules
=
$wp_rewrite
->
wp_rewrite_rules
();
if
(
!
array_key_exists
(
'(.?.+?)/subscriptions(/(.*))?/?$'
,
$rules
))
{
sexhack_log
(
"SUBSCRIPTION RULESS NEEDS REWRITE"
);
update_option
(
'need_rewrite_flush'
,
1
);
}
}
// Add new QUERY vars
public
function
subscriptions_query_vars
(
$vars
)
{
$vars
[]
=
'subscriptions'
;
return
$vars
;
}
// Insert the new endpoint into the My Account menu
public
function
add_subscriptions_link_my_account
(
$items
)
{
$items
[
'subscriptions'
]
=
'Subscriptions'
;
return
$items
;
}
// Add content to the new tab
public
function
subscriptions_content
()
{
echo
'<h3>Subscriptions</h3>'
;
echo
do_shortcode
(
'[pms-account show_tabs="no"]'
);
echo
"<h3>Payment History:</h3>"
;
echo
do_shortcode
(
'[pms-payment-history]'
);
}
public
function
send_register_email_reset_password
(
$user_data
)
{
$mailpage
=
get_option
(
'sexhack_registration_mail_endpoint'
,
false
);
if
(
$mailpage
)
{
$page
=
get_page
(
$mailpage
);
$mailpage
=
$page
->
post_name
;
}
send_changepwd_mail
(
$user_data
[
"user_login"
],
$mailpage
);
}
// XXX 8==D
public
function
gen_random_pwd
()
{
$pwd
=
wp_generate_password
();
$_POST
[
'pass1'
]
=
$pwd
;
$_POST
[
'pass2'
]
=
$pwd
;
{
sh_genpass_register_form
();
}
}
}
...
...
@@ -277,7 +36,7 @@ if(!class_exists('PmsWoocommerceRegistrationIntegration')) {
function
wcpms_adminpage
()
{
$plans
=
pms
_get_subscription_plans
();
$plans
=
sh
_get_subscription_plans
();
sexhack_log
(
$plans
);
?>
...
...
@@ -346,7 +105,7 @@ function wcpms_initialize_options()
add_action
(
'admin_init'
,
'wp_SexHackMe\wcpms_initialize_options'
);
$SEXHACK_SECTION
=
array
(
'class'
=>
'
PmsWoocommerceRegistrationIntegration
'
,
'class'
=>
'
SH_WooCommerce_Registration_Integration2
'
,
'description'
=>
'Integrate woocommerce account page and sexhack modified registration form on pms to send password change link by email'
,
'name'
=>
'sexhackme_pmswooregistration'
,
'require-page'
=>
array
(
...
...
includes/functions-core.php
View file @
cc2f9052
...
...
@@ -33,11 +33,36 @@ function sh_get_template($tmpl, $args=array())
}
function
sh_get_subscription_plans
()
{
return
pms_get_subscription_plans
();
}
function
sh_disclaimer
()
{
echo
sh_get_template
(
"blocks/disclaimer.php"
);
}
function
sh_account_subscription_content
()
{
echo
'<h3>Subscriptions</h3>'
;
echo
do_shortcode
(
'[pms-account show_tabs="no"]'
);
echo
"<h3>Payment History:</h3>"
;
echo
do_shortcode
(
'[pms-payment-history]'
);
}
function
sh_genpass_register_form
()
{
// Check nonce
if
(
!
isset
(
$_POST
[
'pmstkn'
]
)
||
!
wp_verify_nonce
(
sanitize_text_field
(
$_POST
[
'pmstkn'
]
),
'pms_register_form_nonce'
)
)
return
;
$pwd
=
wp_generate_password
();
$_POST
[
'pass1'
]
=
$pwd
;
$_POST
[
'pass2'
]
=
$pwd
;
}
function
sh_hls_player
(
$video_url
,
$posters
=
''
)
{
echo
SH_VideoPlayer
::
addPlayer
(
'hls'
,
$video_url
,
$posters
);
...
...
@@ -73,6 +98,11 @@ function sh_fix_user_with_no_plan($userid)
}
}
function
sh_get_subscription_plan
(
$plans
)
{
return
pms_get_subscription_plan
(
$plans
);
}
function
user_has_premium_access
(
$uid
=
''
)
{
...
...
sexhackme.php
View file @
cc2f9052
...
...
@@ -217,6 +217,9 @@ if(!class_exists('SexHackMe_Plugin')) {
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/functions-core.php'
)
)
include_once
SH_PLUGIN_DIR_PATH
.
'includes/functions-core.php'
;
/* Hooks compatibility/translation */
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/functions-hooks.php'
)
)
include_once
SH_PLUGIN_DIR_PATH
.
'include/functions-hooks.php'
;
/* Cryptocurrencies utils */
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/functions-crypto.php'
)
)
...
...
@@ -234,6 +237,10 @@ if(!class_exists('SexHackMe_Plugin')) {
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/class-livecam-site-support.php'
)
)
include_once
SH_PLUGIN_DIR_PATH
.
'includes/class-livecam-site-support.php'
;
/* WooCommerce support functions */
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/functions-woocommerce-support.php'
)
)
include_once
SH_PLUGIN_DIR_PATH
.
'includes/functions-woocommerce-support.php'
;
/* WooCommerce support class */
if
(
file_exists
(
SH_PLUGIN_DIR_PATH
.
'includes/class-woocommerce-support.php'
)
)
include_once
SH_PLUGIN_DIR_PATH
.
'includes/class-woocommerce-support.php'
;
...
...
@@ -518,7 +525,7 @@ if(!class_exists('SexHackMe_Plugin')) {
public
function
admin_menu
()
{
add_menu_page
(
'SexHackMe Settings'
,
'SexHackMe'
,
'manage_options'
,
'sexhackme-settings'
,
array
(
$this
,
'admin_page'
),
SH_PLUGIN_DIR_
PATH
.
'img/admin_icon.png'
,
31
);
array
(
$this
,
'admin_page'
),
SH_PLUGIN_DIR_
URL
.
'img/admin_icon.png'
,
31
);
add_submenu_page
(
'sexhackme-settings'
,
'SexHackMe Settings'
,
'Modules'
,
'manage_options'
,
'sexhackme-settings'
);
...
...
templates/admin/gallery.php
View file @
cc2f9052
<?php
/**
* Copyright: 2022 (c)Franco (nextime) Lanza <franco@nexlab.it>
* License: GNU/GPL version 3.0
*
* This file is part of SexHackMe Wordpress Plugin.
*
* SexHackMe Wordpress Plugin is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* SexHackMe Wordpress Plugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
?>
templates/admin/sexhackme.php
View file @
cc2f9052
...
...
@@ -18,6 +18,9 @@
* You should have received a copy of the GNU General Public License
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
?>
<div
class=
"wrap"
>
<h2>
SexHackMe Plugin Settings
</h2>
...
...
templates/blocks/disclaimer.php
View file @
cc2f9052
...
...
@@ -18,7 +18,11 @@
* You should have received a copy of the GNU General Public License
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
?>
<div
class=
"site-info"
>
All pictures and videos are property of the respective models. Please copy them for personal use but do not republish any without permission.
</div>
templates/newvideo.php
View file @
cc2f9052
...
...
@@ -19,6 +19,9 @@
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
get_header
();
?>
<div
id=
"primary"
class=
"content-area"
>
...
...
@@ -100,7 +103,7 @@ get_header(); ?>
}
else
{
if
(
user_has_premium_access
())
{
if
(
wp_SexHackMe\
user_has_premium_access
())
{
if
(
$hls_premium
)
$tab
=
'subscribers'
;
elseif
(
$vr_premium
)
$tab
=
'vrsub'
;
elseif
(
$hls_members
)
$tab
=
'members'
;
...
...
@@ -108,7 +111,7 @@ get_header(); ?>
elseif
(
$vr_public
||
$vr_preview
)
$tab
=
'vrpub'
;
else
$tab
=
'public'
;
}
elseif
(
user_has_member_access
())
// free membership
elseif
(
wp_SexHackMe\
user_has_member_access
())
// free membership
{
if
(
$hls_members
)
$tab
=
'members'
;
elseif
(
$vr_members
)
$tab
=
'vrmem'
;
...
...
@@ -138,7 +141,7 @@ get_header(); ?>
case
"members"
:
case
"vrmem"
:
if
(
user_has_member_access
())
if
(
wp_SexHackMe\
user_has_member_access
())
{
if
(
$hls_members
)
echo
do_shortcode
(
"[sexhls url=
\"
"
.
$hls_members
.
"
\"
posters=
\"
"
.
$thumb
.
"
\"
]"
);
else
if
(
$vr_members
)
echo
do_shortcode
(
"[sexvideo url=
\"
"
.
$vr_members
.
"
\"
posters=
\"
"
.
$thumb
.
"
\"
]"
);
...
...
@@ -155,7 +158,7 @@ get_header(); ?>
case
"subscribers"
:
case
"vrsub"
:
if
(
user_has_premium_access
())
if
(
wp_SexHackMe\
user_has_premium_access
())
{
if
(
$hls_premium
)
echo
do_shortcode
(
"[sexhls url=
\"
"
.
$hls_premium
.
"
\"
posters=
\"
"
.
$thumb
.
"
\"
]"
);
else
if
(
$vr_premium
)
echo
do_shortcode
(
"[sexvideo url=
\"
"
.
$vr_premium
.
"
\"
posters=
\"
"
.
$thumb
.
"
\"
]"
);
...
...
templates/video.php
View file @
cc2f9052
...
...
@@ -19,6 +19,9 @@
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
get_header
();
?>
<div
id=
"primary"
class=
"content-area"
>
...
...
templates/videoplayer/hls.php
View file @
cc2f9052
...
...
@@ -19,6 +19,9 @@
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
$uid
=
uniqid
(
'sexhls_'
);
?>
<video
id=
"
<?php
echo
$uid
;
?>
"
style=
"width: 100%; height: 100%;"
controls
poster=
"
<?php
echo
$posters
;
?>
"
></video>
...
...
templates/videoplayer/xr.php
View file @
cc2f9052
...
...
@@ -19,6 +19,9 @@
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
$uid
=
uniqid
(
'sexvideo_'
);
?>
<video
id=
'
<?php
echo
$uid
;
?>
'
class=
'video-js vjs-default-skin vjs-2-1 vjs-big-play-centered'
style=
'width: 100%; height: 100%;'
controls
poster=
'
<?php
echo
$posters
;
?>
'
>
...
...
templates/widgets/videoaccess.php
View file @
cc2f9052
<?php
/**
* Copyright: 2022 (c)Franco (nextime) Lanza <franco@nexlab.it>
* License: GNU/GPL version 3.0
*
* This file is part of SexHackMe Wordpress Plugin.
*
* SexHackMe Wordpress Plugin is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* SexHackMe Wordpress Plugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SexHackMe Wordpress Plugin. If not, see <https://www.gnu.org/licenses/>.
*/
// Exit if accessed directly
if
(
!
defined
(
'ABSPATH'
)
)
exit
;
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment