Använd Hook i functions

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
thegroggs



Medlem i: 4129 dagar

Status: Offline



#742044
Inlägg Skrivet: 2017-12-18 21:03      Ämne: Använd Hook i functions Citera

Hej,
Kör en Wordpress installation där jag försöker koppla samman två plugins.
- Ultimate Member
- WP Project Manager Pro

Idag genereras ett mail när en användare blir inbjuden till ett projekt. Det funkar bra!

PHP:
1:
  /**
2:
     * Notify users about the new project creation
3:
     *
4:
     * @uses `cpm_new_project` hook
5:
     * @param int $project_id
6:
     */
7:
    function project_new$project_id$data ) {
8:
 
9:
        if ( isset( $_POST['project_notify'] ) && $_POST['project_notify'] == 'yes' ) {
10:
            $project_users CPM_Project::getInstance()->get_users$project_id );
11:
            $users         = array();
12:
 
13:
            if ( is_array$project_users ) && count$project_users ) ) {
14:
 
15:
                foreach ( $project_users as $user_id => $role_array ) {
16:
 
17:
                    if ( $this->filter_email$user_id ) ) {
18:
                        $users[$user_id] = sprintf'%s'$role_array['email'] );
19:
                        // $users[$user_id] = sprintf( '%s (%s)', $role_array['name'], $role_array['email'] );
20:
                    }
21:
                }
22:
            }
23:
 
24:
            //if any users left, get their mail addresses and send mail
25:
            if ( ! $users ) {
26:
                return;
27:
            }
28:
 
29:
            $this->check_email_url();
30:
            $file_name 'emails/new-project.php';
31:
 
32:
            $subject sprintf__'[%s] New Project Invitation: %s''cpm' ), $this->get_site_name(), get_post_field'post_title'$project_id ) );
33:
 
34:
            // cutoff at 78th character
35:
            if ( cpm_strlen$subject ) > 78 ) {
36:
                $subject substr$subject078 ) . '...';
37:
            }
38:
 
39:
            ob_start();
40:
            $arg     = array(
41:
                'project_id' => $project_id,
42:
                'data'       => $data,
43:
            );
44:
            cpm_load_template$file_name$arg );
45:
            $message ob_get_clean();
46:
 
47:
            if ( $message ) {
48:
                $this->sendimplode', '$users ), $subject$message );
49:
            }
50:
        }
51:
    }
52:
 
53:
    function filter_email$user_id ) {
54:
        $user_email_notification get_user_meta$user_id'_cpm_email_notification'true );
55:
 
56:
        if ( $user_email_notification == 'off' ) {
57:
            return false;
58:
        }
59:
 
60:
        return true;
61:
    }
62:
 


Sedan skulle jag även vilja göra är att även koppla på notiser med Ultimate Member och använda hooken "cpm_new_project". Det är här jag har kört fast!

PHP:
1:
 add_action('um_before_profile_fields''trigger_new_notification'100);
2:
function trigger_new_notification$args ) {
3:
   global $um_notifications;
4:
      
5:
   /* KODEN HÄR TROR JAG?? */
6:
      $um_notifications->api->store_notificationum_profile_id(), 'new_action'$vars );
7:
      
8:
   }
9:
 
10:
}
11:
 


Ovan kod har jag tagit från följande som genererar en notis när en medlem besöker din profil.

PHP:
1:
 add_action('um_before_profile_fields''trigger_new_notification'100);
2:
function trigger_new_notification$args ) {
3:
   global $um_notifications;
4:
      
5:
   if ( is_user_logged_in() && get_current_user_id() != um_profile_id() ) {
6:
         
7:
      um_fetch_userget_current_user_id() );
8:
         
9:
      $vars['photo'] = um_get_avatar_urlget_avatarget_current_user_id(), 40 ) );
10:
      $vars['member'] = um_user('display_name');
11:
      $vars['notification_uri'] = um_user_profile_url();
12:
 
13:
      $um_notifications->api->store_notificationum_profile_id(), 'new_action'$vars );
14:
      
15:
   }
16:
 
17:
}
18:
 


Tacksam för all hjälp! ☺️
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic