|
@@ -0,0 +1,149 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+if (!class_exists("plug_wookook")) {
|
|
|
+
|
|
|
+ if(!function_exists("sanitize_username")){
|
|
|
+ function sanitize_username($username) {
|
|
|
+ $parts = explode("@", $username);
|
|
|
+ if (count($parts) == 2) {
|
|
|
+ $username = $parts[0];
|
|
|
+ }
|
|
|
+ return $username;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ class plug_wookook {
|
|
|
+ function __construct($ns) {
|
|
|
+ $this->title = __("plug_wookook","dagsopt");
|
|
|
+ $this->pluginname = $ns->pluginname;
|
|
|
+ $this->file = $ns->file;
|
|
|
+ $this->ns = $ns;
|
|
|
+
|
|
|
+ }
|
|
|
+ function start() {
|
|
|
+
|
|
|
+ //add_role( "betalende-abonnent", "Betalende abonnent", array( 'read' => true, 'level_0' => true ) );
|
|
|
+
|
|
|
+ add_action('wp_loaded',array(&$this,'header'),1);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function header(){
|
|
|
+
|
|
|
+ if(isset($_REQUEST['woohook'])){
|
|
|
+ $rr = file_get_contents('php://input');
|
|
|
+ $itemnumbers = explode(",",get_option($this->pluginname."_wookook_items",false));
|
|
|
+ $found = false;
|
|
|
+ try {
|
|
|
+ $order = json_decode($rr,true);
|
|
|
+ if(isset($order['date_paid_gmt'])){
|
|
|
+ foreach ($order['line_items'] as $num => $line) {
|
|
|
+ if(in_array($line['product_id'],$itemnumbers)){
|
|
|
+ $found = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception $e) {
|
|
|
+ echo 'Caught exception: ', $e->getMessage(), "\n";
|
|
|
+ }
|
|
|
+ $testmode = false;
|
|
|
+
|
|
|
+ if($found){
|
|
|
+ $resu = array();
|
|
|
+ $user_email = $order['billing']['email'];
|
|
|
+ $user_name = sanitize_username("O".$order['id']);
|
|
|
+ $user_id = username_exists( $user_name );
|
|
|
+ if ( ! $user_id && false == email_exists( $user_email ) ) {
|
|
|
+ $random_password = wp_generate_password( $length = 12, $include_standard_special_chars = false );
|
|
|
+ if($testmode){
|
|
|
+ $resu[] = "$user_id mock created : $user_name $user_email ";
|
|
|
+ }else{
|
|
|
+ $user_id = wp_create_user( $user_name, $random_password, $user_email );
|
|
|
+ wp_update_user( array( 'ID' => $user_id, 'role' => 'betalende-abonnent' ) );
|
|
|
+ wp_send_new_user_notifications($user_id,'both');
|
|
|
+ $resu[] = "$user_id created : $user_name $user_email ";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $resu[] = "$user_id or $user_email exists";
|
|
|
+ $random_password = __( 'User already exists. Password inherited.', 'textdomain' );
|
|
|
+ }
|
|
|
+ $aemail = get_bloginfo('admin_email');
|
|
|
+ $rr = wp_mail($aemail, 'CCR '. count($resu)." : ". getenv('HOSTNAME')." : ".$_SERVER['REMOTE_ADDR']." : " . $_SERVER['SERVER_ADDR'] . " : ". $_SERVER['SERVER_NAME']." ".date("U"), "::".print_r($resu,true));
|
|
|
+ echo("DONE live");
|
|
|
+
|
|
|
+ print_r($resu);
|
|
|
+ die("done $rr");
|
|
|
+ }else{
|
|
|
+ die("no action done");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function help(){
|
|
|
+ ?>
|
|
|
+ plug_wookook
|
|
|
+ <?php
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function Option($pre){
|
|
|
+
|
|
|
+ update_option ( $pre.'_items', $_POST [ $pre.'_items' ] );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function admin_line($pre){
|
|
|
+
|
|
|
+
|
|
|
+?>
|
|
|
+<table>
|
|
|
+
|
|
|
+
|
|
|
+ <tr><td>
|
|
|
+ </td><td>
|
|
|
+ </td></tr>
|
|
|
+ <tr><td>
|
|
|
+
|
|
|
+ </td><td>
|
|
|
+ </td></tr>
|
|
|
+
|
|
|
+ <tr><td> <?php echo(__("Item numbers:","dagsopt")) ?><br><textarea name="<?php echo( $pre.'_items' ); ?>"><?php echo(stripcslashes(get_option($pre."_items"))); ?></textarea> <br></td></tr>
|
|
|
+
|
|
|
+
|
|
|
+ </table>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <?php
|
|
|
+}
|
|
|
+}
|
|
|
+
|
|
|
+global $plug_wookook;
|
|
|
+$plug_wookook = new plug_wookook($this);
|
|
|
+ $this->dagsopt['plug_wookook'] = $plug_wookook;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|