WordPress and Buddypress phpBB profile fields integration

NOTE x Buddypress profile fields integration: IT IS MANDATORY that the User Groups option on
WP admin -> Settings -> Buddypress
is active option!
NOTE x Buddypress: phpBB 3.2 or > required.

Note: Buddypress avatar integration option work in another way by others profile fields (more below explained) so is possible to activate the Buddypress avatar integration option without activating the Buddypress profile fields integration option.

How the WordPress + phpBB or WordPress + phpBB + Buddypress profile fields integration work:

On WordPress + Buddypress,  it’s required that default phpBB profile fields  exists as they are into a default phpBB install, while in the case of WordPress default without Buddypress it is not required: if phpBB profile fields mismatch from default, no update will be executed, EXCEPT for email and password fields (updated in any case). By the way, into a default WordPress there is only another field of interest on user’s profile, that’s site URL.

Remember that in the case phpBB profile fields aren’t the same like into a default phpBB install, no update will be done on phpBB profile fields (EXCEPT for email and password) when profile update will be executed in WordPress side.

The how to resolve and check about this, can be done reading this post:
WP_w3all phpBB integration and phpBB PROFILE FIELDS

The following is ONLY if Buddypress installed in WordPress and Buddypress integration option activated:

If on Buddypress, the WP_w3all feature about integration of Profile Fields can be activated on WP_w3all config.
If you choose to activate this option, check that phpBB profiles fields matches a phpBB default install configuration ( WP_w3all phpBB integration and phpBB PROFILE FIELDS  ), so will be also necessary to name these fields in Buddypress as explained in this procedure:

any custom field can be added into Buddypress, but only default phpBB default profile fields are synchronized and updated between phpBB and  WP Buddypress, and only if these Profile Fields in Buddypress are named as explained here below. You can add any profile field in Buddypress. But only these that match phpBB as explained below are synchronized/updated.
To have Buddypress integrated  about profile fields and synchronized with phpBB profile fields, phpBB profile fields need to be AS are ON A DEFAULT phpBB installation (as the code is), plus it is required to name these Profile Fields Names in Buddypress in this way:

Buddypress and phpBB default fields integration how to

In Buddypress, is possible to name any field as more like, but if it need to be updated also in phpBB and vice versa, the field name shown to the user, need to contain:

for youtube, the word youtube (lower or capital or both mixed letters, also into a phrase)
for facebook, the word facebook (lower or capital or both mixed letters, also into a phrase)
for icq, the word icq (lower or capital or both mixed letters, also into a phrase)
for skype, the word skype (lower or capital or both mixed letters, also into a phrase)
for twitter, the word twitter (lower or capital or both mixed letters, also into a phrase)
for googleplus, the word google (lower or capital or both mixed letters, into a phrase also (just google, so it can be used for any google service, and not just googleplus: so for gmail may could be used Google gmail))
for yahoo, the word yahoo (lower or capital or both mixed letters, also into a phrase)
for aol, the word aol (lower or capital or both mixed letters, also into a phrase)

So it is important to not repeat these words using as Profile Fields Names on Buddypress some word that is already used to detect another field name (or one of the others 4 fields below).

This can work very fine until the name of the field is about services, because normally these are named in any language the same, while remaining 4 (four) default phpBB profile fields, which are: occupation, interests, location, website can be differently named: in Italian the Eng word occupation is written occupazione, in Dutch it is bezetting etc etc.

For those 4 fields, IT IS REQUIRED that these Profile Fields Names named in Buddypress as single word, or changed to fit your language or different language or phrase or word, as explained more below.

For occupation, the word occupation, lower or capital or both mixed letters, or anyone of the words in the following array:

for interests, the word interests, lower or capital or both mixed letters, or anyone of the words in the following array:

for location, the word location, lower or capital or both mixed letters, or any of the words in the following array:

for website, the word website, lower or capital or both mixed letters, or any of the words in the following array:

as is easy to understand, these arrays for these four BP profile fields names, contains pairs of values:
“language” => “translated word/or phrase”

in these arrays,  is possible to add any other language, OR, you can also choose to modify the translation of some of the Profile Field Names into something different, like for example:
“en” => “website”
could be changed into (use EVER lower case letters here!):
“en” => “your web space”
so as Profile Field name in Buddypress, we’ll set for the website field name:
Your Web Space OR Your web space, or any other mixed lower/capital letters, but the phrase NEED TO BE THE SAME as it is set on the related array.

These arrays can be added into the custom WP_w3all phpBB config.php file, or root phpBB config.php if you use it, so on plugin update nothing will be lost in case of custom additions or modifications, maybe due to addition of your language, or translated phrase/word change.
To do this, open your wp_w3all custom phpBB config.php file (or phpBB root config.php file if you use it) and add the follow (or what for you needed) just below all others existent code lines:

Edit any of those adding custom language for Buddypress profile fields names, that you’ll use to name the related Buddypress profile field. Memo that all added values in these arrays need to be LOWER CASE.

As example, assume we need to add for the occupation field a language like Icelandic, that translate the word occupation in starf: then we’ll go to modify the array $w3_bpl_profile_occupation adding what needed just in this way:

As you can see, it has been added to the array $w3_bpl_profile_occupation the value
“icelandic” => “starf”,

NOTE how it is not important the first value “icelandic” that could be also setup with any other word (if isn’t already used as key for another value in the same array):  the important is the word starf
added as LOWER CASE, that you’ll use as Buddypress Profile Field  Name you’ll dedicate to the occupation field (and that will be recognized and synchronized also in phpBB). So you can use as field name in Buddypress Starf, or StarF, or any mixed lower/capital letters. Remember for these four fields that you can name these Fields Names in Buddypress as lower or capital or both mixed letters, but exactly like the phrase or word as is the value in one of these arrays.

WordPress shortcode for comments, widgets and excerpts

The following add_filter lines of code that will activate shortcode for Posts Comments, Widgets and Excerpts in WordPress, could also be added into your theme functions.php file.

Or if you wish, you can add it on WP_w3all plugin (that allow you to show phpBB posts into WordPress) inside the wp_w3all.php file (NOTE: when plugin update you’ll lost these modifications).

Open wp_w3all.php and search for line:

immediately after, add the follow line/s, about what/where you want to activate shortcode

Activate shortcode for Posts Comments:

Activate shortcode for Widgets:

Activate shortcode for Excerpt:

As said above, you could instead add these “activation” code lines for shortcode in Posts Comments, Widgets or Excerpts in WordPress, into the functions.php file of your WordPress theme.

Extract (ever) correct domain name for cookie – php function

This function extract and return, the correct domain name for any passed value. For convenience, it add the dot in front ( .mydomain.com ) that was necessary in this case to have the cookie available all over the domain.

Get ever the correct cookie domain name, iterating into array only one time:

switch if on localhost:

(on WP_w3all plugin phpBB/WP)

Get complete Domains Names list updated at runtime (array)

The more convenient code that i’ve find out in mind, to get in any case, the correct cookie domain name, where many other different ways fails.
I do not think: but asking myself if there is possibility to have the same result, in less code and more fast than this.

All Domains Names updated at runtime (array)

How are users identified when you add/transfer existent user
integration of same username/email users

Problem: i have WordPress users and I have phpbb users, they have different usernames but the same email addresses.

Solutions:

user A into phpBB with email C
user B into WP with email C

user A into phpBB come to try to login WP: NOT added can’t login WP side.

If you use the transfer process of WP users into phpBB:

user A Same above.
user B transferred into phpBB, B now can login into both phpBB and WP.
You’ll have two users into phpBB with same email, which is possible as option into phpBB.

You can also merge posts/users into one user in this way:

Change email to the user B in WP.
Login with the phpBB user A into WP, that will be added, as no same email found.
Now delete user B in WP, and retain posts assigning to A.

Result: an unique user, with all his posts on both phpBB and WP.

NOTE: This is just to give an idea on how to resolve common problems about an integration with pre existent users in phpBB that may have same email. But there are several more possibilities: in phpBB ACP there are many options to manage users and posts, and combining these and from the above, you should get the way to resolve any possible scenario.

Based on this topic: How are users identified? (when adding/transfer existent users)