how to access nested array how can I access the values in a nested array, e.g. when using get for contact entity
e.g. how can I adjust the following to get the first name? (not working for me at the moment)

$result = civicrm_api3('Contact', 'get', array(
   'sequential' => 1,
   'return' => array("first_name", "last_name", "email"),
   'id' => 28296
));
echo $result['values'][0]['first_name'];

if I use var_dump ($result) I get the following so the results are there:

array(5) { ["is_error"]=> int(0) ["version"]=> int(3) ["count"]=> int(1) ["id"]=> int(28296) ["values"]=> array(1) { [0]=> array(6) { ["contact_id"]=> string(5) "28296" ["first_name"]=> string(8) "Thirteen" ["last_name"]=> string(4) "Test" ["email_id"]=> string(5) "27750" ["email"]=> string(25) "thirteen.test@artigma.com" ["id"]=> string(5) "28296" } } }

thanks much!

You could just use something like $contactData = $result['values'][0] for your var_dump to test. Your echo should be right, in theory.


Multi-state memberships Our club has a two-stage membership process when it pertains to new members. In order to join our club, a person must first join us as a guest, for which there is a fee. The guest fee is applied to their registration fee when they become a member, as long as they become a member within the same membership term (we use fixed annual memberships, and we don't pro-rate memberships).

My initial thought was to have two different membership types: Guest and Club member, however when you change their membership type from guest to member the system adds another term to the membership instead of just changing it for the current term. We can manage this manually, but doesn't work so well with self-service profiles. The fact that we deduct the guest fee from the member fee isn't a problem, we can manage that with fee structures or CiviDiscount.

My next thought was to create a membership status for guests. When someone registers as a guest, they would become a member with a "guest" status. As far as I can tell however, there isn't a mechanism to automatically set the status to guest upon registration or based on the price set. You have to do it manually. All of the state rules are related to dates.

I also thought I could have users register for an event (when they come as a guest) and use their event registration to apply a discount to the membership, but we don't have a specific event for them to register for.

I've asked a few, more specific questions related to the above options, but I hope a less specific question with more application details might lead me in a direction I hadn't considered.

This isn't quite the same thing, but there is discussion in the posts below of membership approval process, which has some similarities - might give you some ideas.

Membership statuses and approval workflow
Using the Pending status for membership approval


Editing donation fields I'm trying to edit the 'If other, please specify' line on our donation form. I'm very new to this position and can't find an answer through my own searching.

Might be worth checking if your page uses a Price Set and then investigating the issue there. Otherwise it might be a field in a Profile, and that text may either be in the field 'pre help' or in the Profile 'pre or post help'


User Registration login in profile page I just want to move the user registration login page to contribution page , before the payment processor. Can anyone say how to do tat? i have attached my screenshot below.

i'm not using event registration..

I'm using customise Data screen-> profile

I am not sure whether this correct way – But easy way – I did once for Event registration

Just make sure you have the same file path on your address bar (highlighted one)
http://examplesite/civicrm/contribute/transact

If yes then you will find a file called main.tpl in the below location
civicrm\templates\CRM\Contribute\Form\Contribution\Main.tpl

Where you can change the order by just playing around in it – also please use custom tpl folder and copy the file over there


Pull data from Drupal entity reference field into CiviCRM? I'm using Entity References and CiviCRM Entity to create some limited silent auction functionality.

In CiviCRM, I have an "In-Kind" contribution type with some custom fields for each donation of an item to be auctioned off.
In Drupal, I have an "Auction Package" content type for each group of one or more items that will be purchasable at auction.
I created an entity reference field in the auction package so that you can select which items are part of each package. (So you could combine, say, a hotel's gift of a one-night stay with a restaurant's donated gift certificate.)

So I've figured out how to pull CiviCRM information into Drupal. But is there a way to leverage the entity reference field in reverse to pull info from Drupal back into CiviCRM? I'd like to have a reference field in the contribution, or record the package number from the Drupal entity in the Civi contribution. How can I do this?

Note: This is a new system, and I'm fairly new to CiviCRM, so I'm open to doing things differently if reworking anything about the way I have this set up would make this work better.

One possibility would be to use views module to create a view that displays auction package nodes, with a contextual filter for the contribution reference field. Then you provide a block display and configure the block to show on contribution pages; it should show the package that is referencing that contribution.

This doesn't pull any Drupal entity data into the CiviCRM database, but it should allow you to display the entity data for the auction package that is referencing the contribution.

Often times it is ideal to keep the Drupal entities in Drupal and the CiviCRM entities in CiviCRM and connect them using reference fields. You should still be able to display them side by side on the same page (using Views) in virtually any context or use-case.


cron jobs process_membership, send_reminder and process_membership_reminder_date I want to send out membership reminders 6 weeks, 3 weeks, etcetera before membership lapses. To send them out, i see multiple cron jobs:

process_membership, named Update Membership Statuses and Send Renewal
Reminders
send_reminder, named Send Scheduled Reminders, and
process_membership_reminder_date, named Set Renewal Reminder Dates

The first one should be on, I guess, like daily or so ?
It may depend on the second one - not sure ?
The 3rd one comes with a warning that it should be off:

WARNING: Membership renewal reminders have been migrated to the Schedule Reminders functionality

indicating that perhaps the first one doesnt have to be on at all.

I'm all confused :-) How do I set this up ?

The first one, process_membership, goes around and updates the membership statuses.  It's what sets a member's status to "expired" once the end date comes around.  Once upon a time, it sent reminders, but it doesn't anymore (new installations don't have that label for the job).  You should be able to have it run daily.

The second one, send_reminder, is for all reminders--activity, event, birthday, etc. in addition to memberships.  Although you could get away with running it daily, you should run this hourly, because you may have time-sensitive reminders set up for events.

Once you have the job running, you should go into the Scheduled Reminders admin page and set up the appropriate reminders.

The third one, process_membership_reminder_date, should stay disabled--it's obsolete, as the warning says.  You could even delete it if you like.


How to migrate database without logs I’d like to move my CiviCRM installation from one Drupal server to another. But I enabled logging in the current server and I don’t want that data to be transferred to the new server. How can I delete the logs before I migrate the database? Or, if there’s a way to migrate without the logs that doesn’t involve deleting them, that would be equally helpful.

You may want to move log tables from main database to specially created database via settings in civicrm.settings.php.  Of course, new empty database has to be created first. After that please find this in civicrm.settings.php:

/**
 * CiviCRM Logging Database
 *
 * Used to point to a different database to use for logging (if desired). If unset defaults to equal CIVICRM_DSN.
 * The CIVICRM_DSN user needs to have the rights to modify the below database schema and be able to write to it.
 */
if (!defined('CIVICRM_LOGGING_DSN')) {
  define('CIVICRM_LOGGING_DSN', CIVICRM_DSN);
}

when replace

  define('CIVICRM_LOGGING_DSN', CIVICRM_DSN);

to

  define('CIVICRM_LOGGING_DSN','mysql://DBUSER:DBPASSWORD@DBHOST/LOGS_DBNAME?new_link=true');

not sure if "new_link=true" is needed though. This automagically moves all LOG_ tables from the main database to  new database. Thus all LOG_ tables in main database could be deleted; main database is clean now and could be moved to new server (guess it's worth making same trick at new server). In theory, there could be some performance benefits as well, but not sure.


QR code inclusion in Mass-mailings I wish to include a personalised QR-code in the Mass Mail for people in the Grace list, to facilitate their payment, which in Sweden can be done by the Swish function: use your phone, read/scan the QR code, key in your PIN, and the payment is done.
The problem I meet is to understand how I can invoke the result (a unique personalised QR png-file) of an API-request (to the Swish company) in the flow of text in the mass-mail message.
Has anybody done this before? Can php be invoked or Python?
Claes

It sounds like you would want to create a custom token. See https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_tokens/
So for the value of the token you would need to do the Swish api call and then use the result.


x_subscription_id For Authorize.net I am trying to test recurring transactions that were failing in production and in a dev instance.

For testing I am using the curl command from https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/authorize-net/#online-form-testing-method.
curl https://dev.domain.com/sites/all/modules/civicrm/extern/authorizeIPN.php -d x_amount=0.25 -d x_cust_id=9025 -d x_invoice_num=5273 -d x_trans_id=12345TEST

This is what I am finding in my CiviCRM log.  I see the form example in the book has x_subscription_id but not the curl command.

Dec 19 04:54:55  [info] Could not find an entry for x_subscription_id

Dec 19 04:54:55  [info] $error data = Array
(
    [error_code] => 0
)

Dec 19 04:54:55  [info] $REQUEST = Array
(
    [x_amount] => 0.25
    [x_cust_id] => 9025
    [x_invoice_num] => 5273
    [x_trans_id] => 12345TEST
)

Any help is appreciated.

Thanks,
Josh

You are missing -d x_subscription_id=21930455 in your curl command (just change it to your subscription_id).


Reserved de-dupe rules I'm wanting to refine the de-duping rules, but first of all I'd like to find out exactly what the predefined rules are before I create my own. They are reserved, so you can't edit them, which is fine, but it only tells you which fields they use and not what the weights and thresholds are so the full behaviour is not clear.

Demerit's and Mick's answers are incorrect for the (built-in) reserved rules - though it's definitely confusing!

If a RuleGroup has a value in the name field, and that name corresponds to a filename in CRM/Dedupe/BAO/QueryBuilder, then the customized SQL in those files will be used. The existing entries in civicrm_rule for those RuleGroups are holdovers from before that system existed, and editing them has no effect.

"Standard" dedupe rules with multiple criteria are very inefficient compared to handwritten SQL, which is why this is a valuable technique.  You can create your own handwritten queries with hook_civicrm_dedupe, and the Veda dedupe extension has a number of excellent examples.  Note that this extension doesn't work on modern Civi because of some of its other functions, but the dedupe rules can be ripped out into something else.

Finally - I learned just yesterday that the built-in handwritten dedupe rules seem to execute different SQL when comparing in Unsupervised/Supervised mode (a single contact) vs. General mode (find all dupes).  While I haven't proved it, I suspect that if you're in the rare scenario of needing to optimize your unsupervised/supervised dedupes, creating a new class to extend CRM_Dedupe_BAO_QueryBuilder is the way to go.  I just posted org.agbu.optimizeddedupe to provide an example of this.

UPDATE: More clarification.

To understand how the queries work, it's best to look at an example, eg IndividualUnsupervised.php.

The internal function is used if you go to Contacts » Find and Merge Duplicate Contacts and click Use Rule.  The SQL query is:

            SELECT contact1.id as id1, contact2.id as id2, {$rg->threshold} as weight
            FROM civicrm_contact as contact1
              JOIN civicrm_email as email1 ON email1.contact_id=contact1.id
              JOIN civicrm_contact as contact2 ON
                contact1.first_name = contact2.first_name AND
                contact1.last_name = contact2.last_name
              JOIN civicrm_email as email2 ON
                email2.contact_id=contact2.id AND
                email1.email=email2.email
            WHERE contact1.contact_type = 'Individual'"

First, note that the weight is set to $rg->threshold - that is, the threshold in civicrm_rule_group.  In other words, if this SQL matches, these records automatically meet the threshold for that rule.  Hopefully that answers your main question!  If you remove that field, you can run this SQL as-is in a SQL client and get a complete list of the duplicates it would return.

To further clarify - unlike "regular" rules which are the result of several queries, each with their own weight - this runs a SINGLE query, and sets the weight equal to the rule's threshold.  So it's a straight yes/no answer whether a record is a duplicate, based on whether the SQL finds them.

That's not to say that you can't simulate length/weight, but it's tricky.  My org.agbu.optimizeddedupe rule has a SQL statement you can look at which gives the same results as this rule:

However, it took about 5 seconds to compare even a single submitted contact against the existing 165,000 contacts in this databse with the existing rule.  Now it's almost instantaneous.


How to access the 4.7 Administrator Status Page? I see a prominant feature of 4.7 is the "Administrator Status Page" and the Issue is https://issues.civicrm.org/jira/browse/CRM-13823 but I do not see a menu item for the status reports.  How do you access the status reports?

You posted this question almost exactly at the same time that a PR to merge in this feature was posted - see the last comment on the CRM-13823 issue.

I was part of the team that worked on this during the Colorado sprint.  The entity and APIs have been in place for months, and the 4.7 code all uses the new entity - but the status page, for the sake of easier development, was done in an extension, which the PR merges into core.


Would it be feasible to store the fact that a scheduled reminder has been sent, without storing the content of the email? Our DB is larger than we would like. Just two tables, activity and log_activity make up more than 25% of the DB size.

We send secheduled reminders for memberships and to potential new members who have visited our booth at expos. We want an activity that records an email was sent, but we don't need to store the content of the emails in the activity, just the subject is enough. We removed the content of the emails on our staging site and the tables dropped to about 30% of the original size.

At the moment when creating a scheduled reminder there is a tick box for "Record activity for automated email".  Would it be appropriate and feasible to have another tick box to indicate whether or not the content of the email should be stored in the activity?  (Probably for some schedule reminders of, say, payments owing storing the content of the email on each activity would be desirable.

Am I right in thinking this should be tackled via an extension?

A variation that might be easier is put whatever you did to test removing the content into a script and run it daily via cron. I'm assuming you did something like

UPDATE civicrm_activity set details='' WHERE (something)


Why does searching by contribution source use always the "Like" statement? I'm currently using CiviCRM 5.21.1.

When I try to search for contributions by typing specific "Contribution Source" under "Contributions -> Find Contributions", it shows me all contribution records which contribution source is not only just "ABC" but also "ABCD" and "ABCDE".

This is because "Find Contributions" searches with a "Contribution Source Like ABC%" condition, not "Contribution Source = 'ABC'". In other words, for the search, a wildcard was attached automatically at the end of the word and the "Like" statement was used in the search condition instead of an equal statement.

I know that I can find the list what I want by using "Search Builder" but I want to get the numbers of Total Amount and Average, so I need to use "Find Contributions".

Does anyone have the same issue as me? Please, help me.

The reason is because Civi is trying to accommodate less tech-savvy folks than yourself :)

I recommend CiviReport - either Contribution Details or Contribution Summary reports.  That will let you control the operator, give you the total/average, and in the case of Contribution Summary, allow you to aggregate in other ways - e.g. total/average by month, or by financial type.


hook_civicrm_post - on creating event cannot update the record in `civicrm_event` table I have a custom field in civicrm_event table which I want to update on creating event. However the hook_civicrm_post on creating event cannot update the record in civicrm_event table due to database transaction lock still in place at that point. Is this possible to be achieved with another database transaction? Can someone give me an example.

See custom fields, See custom fields
http://docs.civicrm.org/user/en/4.6/events/custom-data-for-events/


Create new CiviCRM database...? I just succesfully installed CiviCRM on our website (WordPress), I created a new DB but was not given the option to specify it during the installation process.  It seems to have installed in a DB that was already there xxxxx_demodb in which I can now see all the civicrm_xxxx tables, along with a handful of tables that look like they belong to WordPress, listed here:

wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts,
wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy,
wp_usermeta, wp_users.

Can somenoe pls confirm if these are WP or CiviCRMtables, and/or advise on how I can move the tables into a new DB and what config/ini things will need to be updated to make this work.

Or just create a whole (or use the empty one I already created) new fresh standalone DB, I have only made minor changes to the settings that I can just redo...

Thanks, Joe.

The database tables you mentioned are wordpress CMS db tables. you would need to reinstall civicrm again and when installing it would ask for database fields where you can put in the civicrm database name and connection details. This documentation explains well the process of installing civicrm in wordpress CMS: https://docs.civicrm.org/sysadmin/en/latest/install/wordpress/


Picture size: larger than screen A contact has a custom file field named : Passport copy
Context : I add a picture (jpg file) in this file "passport copy" .
And I save the contact. Then when I click on the file, a pop up is opened with the passport copy This is good.
But if the jpg is a wide file, the pop up is all over the page and I can't resize it. The picture is larger than my screen...
So I would like to specify a size for this pop up like 250px/250px. But I don't know how

Is it clearer ?
Regards,
hashkey

I wasn't able to reproduce the problem of the popup going off the screen for images that are too wide, but I did find that the popup's titlebar got hidden behind the menu if the image was too tall.

I've opened this pull-request to make things work a bit better in that situation.


Install Development Environment CiviCrm for Drupal 8 I've cloned civicrm-core (4.7.28) and civicrm-drupal (switched to branch 8.x-4.7.28-rc) into my top level modules dir of my Drupal 8.4.
I was able to install dependencies into vendor dir for civicrm-core using composer. I get the following errors when trying to do same for civicrm-drupal:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
    - The requested package civicrm/civicrm-core could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see https://getcomposer.org/doc/04-schema.md#minimum-stability for more details.
 - It's a private package and you forgot to add a custom repository to find it

From what I gather the problem is simply a path issue, as civicrm-core 4.7.28 is in a peer dir. As it seems bad practice to modify the composer.json file to point to local path and I wish to keep core/drupal projects in separate dir, there must be a simple solution which I've been unable to stumble on thus far.

Any suggestions?

UPDATE: You can use this method but instead of a version 5.x in the composer command specify dev-master.

You can also use buildkit with e.g. target d8rec-clean. See https://github.com/civicrm/civicrm-drupal-8/pull/37

OLDER:

Here's what I've been doing. I don't think it's the ideal solution and am curious if anyone else has a better way.

Use the roundearth installer as normal to install the latest "numbered" version. (https://gitlab.com/roundearth/drupal-civicrm-project)
Hack the vendor/roundearth/civicrm-composer-plugin/src/Handler.php file so that:

(a) getCivicrmCoreVersion() returns 'NIGHTLY'

(b) addMissingCivicrmFiles() uses https://download.civicrm.org/latest/civicrm-NIGHTLY-drupal.tar.gz as the civicrm_archive_url.
Delete vendor/civicrm/civicrm-core
Run composer require civicrm/civicrm-core:dev-master civicrm/civicrm-drupal-8:dev-master


Contribution total amount being doubled when Tax Rate is set to 0 on manual membership renewal We're running on Drupal 7 and the latest ESR 5.27.5 (was able to replicate on dmaster).
On manual membership renewal with the member dues financial type which has a VAT/GST account attached to it that has 0% tax rate, sets it to pending, the contribution total amount displayed is double the actual contribution total.
I thought this was only on the ESR version but I was able to replicate this on https://dmaster.demo.civicrm.org
Steps to replicate:

Add a VAT financial account with tax rate 0
Add the financial account to the member dues financial type
Go to any contact with an active membership.
Renew the membership manually and set the status to pending and save. Check the contribution total amount.

Instead of setting it to pending, if the payment is set to completed, the total amount is correct but the subtotal seen on the invoice is incorrect.
This only happens when tax rate is set to 0.
If the tax rate is even set to 0.0000001, this does not occur. Thought I would bring this up because I'm assuming it affects a few version.
This is still visible on dmaster if someone wants to check.

Try upgrading civi to 5.28.4 as it should be fixed in this version


Creating a custom (select) field and update option values from php I use Wordpress with CiviCRM. I would like to create a custom select field and populate the option values with php.
After investigating the forum and the documentation I think I should create a hook (or a plugin in wordpress) for that, but not sure.

Could somebody show me a working example or direct me where to continue?

The hook you are looking for is hook_civicrm_customFieldOptions. Example from the docs:

function civitest_civicrm_customFieldOptions($fieldID, &$options, $detailedFormat = false ) {
    if ( $fieldID == 1 || $fieldID == 2 ) {
        if ( $detailedFormat ) {
            $options['fake_id_1'] = array( 'id'    => 'fake_id_1',
                                           'value' => 'XXX',
                                           'label' => 'XXX' );
            $options['fake_id_2'] = array( 'id'    => 'fake_id_2',
                                           'value' => 'YYY',
                                           'label' => 'YYY' );
        } else {
            $options['XXX'] = 'XXX';
            $options['YYY'] = 'YYY';
        }
    }
}


How to show civicrm toolbar in drupal also? I have created some drupal views for civicrm.
But the views pages are opening inside the drupal set up, where the civicrm toolbar is not showing.
Now, how can i show the civi toolbar in the drupal? To avoid the switching between drupal and civicrm.

To answer your question, I wrote a module:

https://www.drupal.org/project/civimenu

The code snippet I posted below probably wouldn't work because of timing issues (by the time the block was being printed it's too late to add the header). Seemed better to package it up into a module. Enjoy.


How do I import contacts through the command line? How can I import contacts in CiviCRM using the command line (CLI) rather than using the CiviCRM user interface and its importing wizard?

When you are importing a large number of contacts, you could face timeout issues when using the user interface. Importing through CLI is an alternative.

There is a file called import.php in /civicrm/civicrm/bin/csv/import.php. We will call this file from the command line.

After you have exported your CSV file, here are the steps for the import:

Put the CSV file on your CiviCRM server, outside the webroot somewhere. (Do not place this file within the website root, or you risk exposing your contacts' data to the internet.)
In the command prompt (shell), type php path/to/import.php -e Contact --file path/to/file.csv (check this forum post for some more detail). Provide an absolute path to the CSV file.
At this point, depending on the contents of your CSV file, you will likely get an error such as ERROR line 2: Mandatory key(s) missing from params array: contact_type. It expects you to pass a contact_type parameter inside the CSV file. If you don't have one in your exported CSV file, you can very easily add a contact_type column in it using a Notepad++ macro (note: turn off autocompletion for words and quotes in Notepadd++ as it may screw up the macro). Just add the new column at the end. Here is an example of a CSV file:

"email","contact_type"
"blabla@example.com","Individual"
"asdf@example.com","Individual"
Now run the command again and you should see a success message for each imported contact. The message looks like this: line 2: created Contact id: 114

The down side is that you cannot (yet) assign a group or a tag to the imported contacts. I looked into the API but could not see an ability to add contacts to groups or tags.

Troubleshooting:

If you get an error such as "cli.php can only be run from command line.", and you wonder about it because you ARE running from the command line, then likely you are using php as cgi/fcgi. To overcome this there is a little hack (which I am not too happy with, but we actually are using the code as intended here). In /bin/cli.class.php, on line 85 the function _accessing_from_cli() checks whether the program is run from CLI. It does this by checking the contents of PHP_SAPI. But according to the first comment here, that variable is not reliable in some cases. So we can modify the function like this:

public function _accessing_from_cli() {
    if (PHP_SAPI === 'cli') {
      return TRUE;
    }
    else {
        /* Temporary hack since the PHP_SAPI check does not work correctly for cgi/fcgi. See first comment here: http://php.net/manual/en/function.php-sapi-name.php */
        return TRUE;
        //trigger_error("cli.php can only be run from command line.", E_USER_ERROR);
    }
  }

After you import your contacts, do not forget to return the file back to its original version.

I really suggest you either configure php to show up errors or make sure you have access to the php error log. This way, if the import suddenly stops after some time, you'll be able to see the reason and take appropriate measures (increase memory_limit, max_execution_time, etc.).


'Spark' CiviCRM on a shared server? Our new webhost will not permit us to use CiviCRM on its server due to use of 'triggers' and their unwillingness to grant us 'superuser' admin status. Will the lite version of CiviCRM that is coming out in February (Spark I think) be more acceptable to hosts who use shared servers for tiny not-for-profit organisations? We were using CiviCRM with Wordpress under our previous shared hosting arrangement without any problems but had to change hosts for security reasons and have found that it is no longer compatible in shared hosting environments. Is separate dedicated CiviCRM hosting our only future option?
Karen

You don't need superuser status to use triggers on modern versions of MySQL (5.5+).  Of course, your host may just choose not to support triggers, in which case they're unsuitable for hosting CiviCRM.


Can not add both Individual and Organisation to case When a case is created one contact is added. But later, when I want to add another contact, sometimes that is not possible. I've figured out, I think, that if the first contact is of one type, Individual, say, and the other one is an Organization, that is not possible because the search dialouge limits to the previous type.

Furthermore, if I add one Individual and one Organization when I create the case, it seems to be no problem.

I wonder why? And I'm fairly sure that it has been possible since we have cases in our database that have this.

Or is there a way to do this anyway?

I too had this problem. What worked for me is modifying the Contact Type A and Contact Type B to All Contacts in the Relationship section (administer---customise data and screens---relationship types) Remember to do it for any Case Related Roles e.g. the Case Manager. I was then able to select the organisation type. I have set it up so a User can submit the case as the Original Submitter but the case is assigned to the Organisation so multiple users can submit cases but they get organised to the Same Organisation which makes it easy to keep track. Hope this helps.


Embed profile in separate Web site (WordPress) Is it possible to embed a profile (form) in a Web page on a different Web site?  My CiviCRM is on a WordPress site, so there is no "MORE" option to capture an HTML snippet when looking at the properties of my Profile.  I know I can embed the form in a Web page on the CiviCRM Web site, which inserts something like [civicrm component="profile" gid="33" mode="create" hijack="1"]
But obviously that alone won't work if I embed it on a page on another Web site.  Is there a way to do this?
[And if so, do I also need to set "Accept profile submissions from external sites" to yes?  Is this a security risk?]

You need to enable a setting that allows Profile submissions from external sites for this option to be visible.
To do this go to Administer >> System Settings >> Misc and look for "Accept profile submissions from external sites"


Donation Pages Automatically Redirect Issue
Links to donation pages result in automatic redirects to the home page for users other than administrators. Base page loads correctly. ACL is configured to allow contributions from all types of users (anonymous included).
Configuration
WordPress Version: 5.5.1
PHP Version: 7.3.19
MySQL Version: 5.5.5
Server Software: nginx/1.17.6
Your User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15
Session Save Path:
Session Save Path Exists: No
Session Save Path Writeable: No
Session Max Lifetime: 1440
WP Multisite Mode: No
WP Memory Limit: 40M
Currently Active Theme: Divi: 4.6.3
Wordpress Plugins
Caldera Forms: 1.9.2 Active
Caldera Forms Stripe: 1.4.7 Active
Caldera Forms Style Customizer (CFSC) for Divi & Extra: 1.0.3 Active
Caldera Forms Users: 1.3.10 Active
CalderaWP License Manager: 1.2.10 Active
CF CiviCRM: 1.0.5 Active
CiviCRM: 5.29.1 Active
Mail Templates For Caldera Forms: 1.0.4 Active
Query Monitor: 3.6.4 Not Active
Really Simple SSL: 3.3.5 Active
WP Mail SMTP: 2.4.0 Active
CiviCRM Extensions
Access Control by Financial Type for Reports
(biz.jmaconsulting.financialaclreport)  Enabled 1.1
CiviMobileAPI
(com.agiliway.civimobileapi)    Enabled 5.3.0
Stripe Payment Processor
(com.drastikbydesign.stripe)    Enabled 6.4.2
iATS Payments
(com.iatspayments.civicrm)  Enabled 1.7.2
Event ICS
(eventics)  Enabled 1.0
Firewall
(firewall)  Enabled 1.1
CSS/JS minifier for AssetBuilder
(minifier)  Enabled 1.0
MJWShared
(mjwshared) Enabled 0.8.1
FlexMailer
(org.civicrm.flexmailer)    Enabled 1.1.1
Sweet Alert
(sweetalert)    Enabled 1.3
Mosaico
(uk.co.vedaconsulting.mosaico)  Enabled 2.5.1597918155

Since you have the extension Access Control by Financial Type for Reports that means you have Access Control by Financial Type enabled. You have to set additional permissions when this is enabled.

You must grant the add and view permission for each financial type to
the anonymous user role for visitors to be able to access your contribution pages.

I submitted this PR to the docs as I had encountered this issue as well.


Error messages while setting up Event Calendars using Calendar and Views modules Trying to set up some calendars on my website and running into trouble with both my theme screwing up the display and these error messages showing:

Notice: Undefined offset: 27 in calendar_plugin_row_civicrm->render() (line 135 of /home/***/public_html/sites/all/modules/civicrm/drupal/modules/views/plugins/calendar_plugin_row_civicrm.inc).

Notice: Undefined property: stdClass::$start_date in calendar_plugin_row_civicrm->render() (line 156 of /home/***/public_html/sites/all/modules/civicrm/drupal/modules/views/plugins/calendar_plugin_row_civicrm.inc).

Warning: Invalid argument supplied for foreach() in calendar_plugin_style->render() (line 305 of /home/***/public_html/sites/all/modules/calendar/includes/calendar_plugin_style.inc).

I am using the CiviCRM Events View that was installed by one of the involved modules. The events DO show on the calendar, and I CAN click on them to get to the event page. In other words, things appear to be working, but I can't get rid of these error messages showing up on the page.

Error is only showing up on current month, January. Ah - if i filter out all events prior to today's date, there are no error messages. So temporary fix, but I do want to be able to scroll back through the months and see past events.

Civicrm 4.6.11
Drupal  7.41

Would appreciate any suggestions. Thanks!

Just update the calendar module to latest version, it will fix the issue.


Why is there a hyphen following the postal code with this address format? The token {contact.postal_code}{contact.postal_code_suffix} is returning an extra hyphen at the end of the string: 10023-7890- not 10023-7890.

The actual content shown in the Settings - Addresses is as follows

{contact.addressee} {contact.street_address}
{contact.supplemental_address_1} {contact.supplemental_address_2}
{contact.city}{, }{contact.state_province}{ }{contact.postal_code}{-}{contact.postal_code_suffix}
{contact.country}

How can I get rid of it?
Thanks,
K.

Sorry - the cut & paste I did had the extra hyphen after country. However, the actual content shown in the Settings - Addresses is as follows:
{contact.addressee}
{contact.street_address}
{contact.supplemental_address_1}
{contact.supplemental_address_2}
{contact.city}{, }{contact.state_province}{ }{contact.postal_code}{-}{contact.postal_code_suffix}
{contact.country}

The extra hyphen after {contact.country} does not appear in the mailing label or address display format, but it is still appearing everywhere.

I've tried editing the address settings by adding each token but the problem remains. Any other thoughts?

It looks like CiviCRM automatically includes the postal code suffix in the {civicrm.postal_code} token, so I think you can just remove the suffix and hyphen from your address configuration.

Using your stated configuration in Administer > Localization > Address Settings, I see the same behaviour on http://d46.demo.civicrm.org when printing address labels.

Using this format (with postcode suffix and hyphen removed), I see the suffix included in the output of the postal_code token.

{contact.addressee} {contact.street_address}
{contact.supplemental_address_1} {contact.supplemental_address_2}
{contact.city}{, }{contact.state_province}{ }{contact.postal_code}
{contact.country}

Results in -


comply with CAN-SPAM in workflow messages I am using CiviCRM 5.18.4 with WordPress 5.3.2, and residing in the United States, where we are required by law to include certain info (our postal address and an opt-out link) in ALL our emails.  I can do this in my individual messages and bulk email footers, fine.  But they don't show up in any of the Mailflow messages.

I have tried adding

{$domain.address}

To comply with CAN-SPAM laws, we remind you that you can also opt-out of all mailings from us.  To do so, <a href="{$action.optOutUrl}" click here, or send mail to {$action.optOut}.

near the bottom of the (html) message template, but it doesn't plug in the token values (or it just generates a critical error).

But even if I could get it to work, why am I figuring out how to tweak this?  Doesn't almost EVERYONE need to include a footer like this in almost ALL their workflow emails?

Take out the $ signs. Smarty variables use $ signs, tokens don't. It is a little bit awkward when they're mixed in the same template.

I don't know the legal answer to the other part of the question, but bulk mailings include it by default.


Contribution Email Attachment Name My client would like to change the attachment name of the pdf they receive when a contribution is made.

This is now receipt.pdf (which is the case for a lot of emails).

Can this be changed?

I'm using Wordpress

I didn't manage to test this but Receipt.pdf is been hard-coded in CiviCRM Core and if you need to change the name of the attachment then you need to look into the below file and you need to override the file to achieve your change

.../wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/confirm.php

'PDFFilename' => 'receipt.pdf' - Line 1274

Also look into the link before overriding the file

Can I override core classes or PHP files with custom versions?

I guess this helps!


Can you create a mailing list based on a relationship setting? We want to create a mailing list for a subset of people based on their relationship status. Is this possible?

It depends what you mean by relationship status, but go to Search - Advanced search and choose "Display results as" - "Related Contacts" and then in the relationships section lower down make your choices. In the search results list there's an Actions dropdown at the top and one of the choices is Group - Add contacts. You can also choose Group - Create smart group if you want the group to keep updated by itself.
And then use that Group as your Mailing List.


URL "civicrm/a/#" breaks the UI Hello dear colleagues.
Yesterday I updated a Drupal 8 site to 5.35.1.  Afterwards many of menu URLs become replaced/injected with a "civicrm/a/#" string, for example domain.tld/civicrm/a/#/mailing/new or domain.tld/civicrm/a#/status; and the UI returns a blank page, not a white screen, but a page with no CiviCRM body content (see attached image).
Once this occurs the CiviCRM menu system is no longer active (clicking on any other CiviCRM menu does nothing).
I have also now done a net new composer based install (new o/s path and new DB) this time on Drupal 9 CiviCRM 5.35.1, and precisely the same problem occurs.
This is a CPanel Centos VPS server.
Your kind help is most appreciated.

I have repeated the new install, this time including this:
composer config extra.enable-patching true
The site now completely renders UI contents, such as the new mailing page or the status page.
So then, going to the troubled upgrade site, having first configured the install with these composer configurations:
composer config extra.enable-patching true
composer config minimum-stability dev
composer config prefer-stable true
composer require civicrm/civicrm-asset-plugin
composer require civicrm/civicrm-{core,packages,drupal-8}
and then again:
composer update
composer civicrm:publish
The upgrade site is now working.


How do you add a static option to a webform? I am trying to update our webform to add an upcoming event to our registration page (static options)  I don't want to save over the past events because I believe that will override the existing data (and I can't seem to figure out how to save over it in any case)

For example, we've had a series of events every month this year and I am trying to add the event for next month without saving over the past several events.

Any help is much appreciated!

Welcome to SE!

The way to do this is to add an Event for each Event in your CiviCRM - and then to select the current one on your say October Event Webform;

You can use node clone module to clone the webform to say November Event Webform;


Mailchimp and CiviCRM: possible integration using custom contact fields? looking for some advice about a potential Mailchimp integration.

I've used the wonderful Mailchimp CiviCRM Extension and it works great, but I'm not sure it will work for a specific case I've got.

If I understand correctly, the Extension only uses the main contact email of each contact, and maps that to groups that are synched with Mailchimp lists.

But each contact profile in this use case includes additional custom contact fields containing names and emails (as an example, an organizational profile includes contact names/emails for different departments).

My questions:

-- Is there any way to synch these groups of custom fields to specific Mailchimp lists?

-- If not (as I suspect!), how would you approach such an implementation?  Create individual Civi contact entries for each of these subcontacts? Or is there a way to customize the Extension to use custom fields for synching?

The system in question is Joomla+CiviCRM at latest versions.

Any input appreciated!

I don't think this is possible in mailchimp extension ATM. But its possible via creating a extension that will extend mailchimp and use the sync api/function or altering the mailchimp extension itself.

Thanks

Pradeep


How to pair up event participants? My event has a structure of all participants pairing up in study couples (2 or 3 people together).
I know I can create a relationship for each one, but I need to see the pairs very clearly in the event participant list.
How can I show the list of participants grouped by pairs, or even have each 2 (or more) coupled participants highlighted in different colors?

You can get somewhat close to your desired functionality by putting the contacts in a smart group and displaying them within the relationship report.

Use the advanced search to display all contacts within the event (by adjusting the search fields within ("Events").
Add all the contacts to a new smart group.
Create a new report to show relationships (Administer > CiviReport > Create new report from template > Relationship report).
In "Filters", set "Group" to your smart group.
Adjust other report settings as necessary.

But I suspect the end result will still not be 100% satisfying. Groups of three might not display well enough for you.


Cron error after upgrading to 4.7.14 - Function "is_admin()" is missing, even though WordPress is the user framework I upgraded to 4.7.14 and now I get the following error when running /wp-content/plugins/civicrm/civicrm/bin/cron.php.  I'm running Wordpress 4.7.

  Fatal error:  Uncaught exception 'Exception' with message 'Function "is_admin()" is missing, even though WordPress is the user framework.' in /home/mysite/www/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/System/Base.php:261
  Stack trace: etc

This is similar to the post Cron error after upgrade to 4.7.1.

cron has been running fine for years previously - on the same host

I'm trying to run:

GET 'http://mysite.com.au/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=admin&pass=somepassword&key=sitekey'

I can run the jobs manually from the scheduled jobs screen and they complete

I've tried:

cli and URL versions
changing permissions for cron.php and cli.php
confirmed no special characters in password or site key

That's about the extent of my capabilities sadly.. Any suggestions please?

The error message comes from here and indicates that cron.php is not bootstrapping the WordPress CMS, so WordPress functions aren't available.

WordPress is_admin() is defined in wp-includes/load.php. If WordPress was initialised, that function would be present.

If you are able to configure your cron to execute via commandline (eg wp-cli method or PHP CLI method) instead of by request to cron.php, that might give you a workaround for whatever issue is affecting this setup. (Edit: Oh, you tried that? Sorry!)

There was a previous report (from 2012) of the same behaviour: CRM-9727: cron.php will not run in Wordpress, is_admin() call to undefined function.


Why can't I export my report to pdf? I have a problem (well, in fact, more than one Why can't I export a Contact Detail report to CSV?) with civiReport.
I can't export my contact report to pdf.

At first, when I clicked I only got a white screen (white screen of dead) and nothing happened. Then I found this...

http://forum.civicrm.org/index.php?topic=24422.0

... so I changed memory limit value both in php.ini and civicrm settings to 512M. I have also increased max execution time , just in case. Nothing happens. It simply waits "loading" until max execution time runs off (and it's 300 seconds).

So I don't know what else I can do. Please, help :( .

Iván Lago

IT Engineer at Engineers Without Borders Galicia

More info:

Server version: Apache/2.2.22 (Debian)

CMS: Drupal 7.36

CiviCRM version:4.6.0

PHP: 5.4.39-0+deb7u2

MySQL: 5.5.41-0+wheezy1

There are a number of reasons PDFs from reports can crash.  It's usually a matter of running out of memory, but that's not exclusively a hosting problem.  If you have a really big report with tons of pages and tons of columns, that can cause problems when a 4- or 5-page report displays easily.  Remember: when you view the report, you're only seeing one page's worth; when you're sending it to PDF, you're rendering all the pages at once.

You should probably try installing wkhtmltopdf, which runs a headless WebKit on your server to generate a PDF.  CiviCRM has built-in support for it; it's just not the default because it doesn't assume you can install additional software on the server.

Once you've installed it (there's a package for Debian wheezy), just go in CiviCRM to Administer > System Settings > Misc and tell it where to find wkhtmltopdf on your system.


CiviCRM Spark Localization Change I'am a totally beginner. After signing-up to CiviCRM Spark for evualating I expected the web-Site to be in German, but it's all in english.  How Can I change the language to German?

Uli, Welcome to CiviCRM stack exchange.

You can change the language by navigating to CiviCRM >> Administer >> Localization >> Languages, Currency, Locations

Change the default language to German.


Where is customPHPPathDir set in 4.7.0? This appears to be missing. I can't get CiviCRM to execute custom PHP code.

/CRM/Core/Config/Runtime.php at line 139 references $this->customPHPPathDir but there is no such member variable of this object. Because of this customPHPPathDir is not added to the include path.

The comment on the previous line is FIXME.

Is this a bug?

I would suggest you to not use that folder anymore (Allen is detailing where you can set it), but to write extensions.

What is usually done is to copy paste an existing php file from the core and alter it to fit your need. However, as the original file is likely to be modified in the core between versions, you will either end up with your modify version that has diverged from the core, or you'll need to apply your changes at every upgrade.

Most of what you need to be changed can usually be done more safely and robust from an extension, using hooks


adding a column to the standard relationships report in Contact Reports Using the standard relationships report under Contact Reports, I would like to be able to add another column under Contact B. That column would pull the supplemental 1 address field.

Using the current template what do i need to add in order for that to work? Do i need to modify any other php files as well?

As ErikH stated it is always good practice to create a new extension or create a custom folder to override core files

So In order to add a supplement address in the report you need to add a new column to the report first

 'civicrm_address' => array(
    'dao' => 'CRM_Core_DAO_Address',
      'fields' => array(
      'supplemental_address_1' => array(
        'title' => ts('supplemental address 1'),
        'default' => TRUE,

      ),
    ),

The above code will add a column to the report and next you need to add address table to the from function

if ($this->_params['fields']['supplemental_address_1']){
    $this->_from .= "
        INNER  JOIN civicrm_address {$this->_aliases['civicrm_address']}
                     ON (( {$this->_aliases['civicrm_address']}.contact_id =
                           {$this->_aliases['civicrm_contact']}.id  OR
                           {$this->_aliases['civicrm_address']}.contact_id =
                           {$this->_aliases['civicrm_contact_b']}.id ) AND
                           {$this->_aliases['civicrm_address']}.is_primary = 1 ) ";

} else if (!empty($this->_params['country_id_value']) ||
  !empty($this->_params['state_province_id_value'] )
) {
  $this->_from .= "
        INNER  JOIN civicrm_address {$this->_aliases['civicrm_address']}
                     ON (( {$this->_aliases['civicrm_address']}.contact_id =
                           {$this->_aliases['civicrm_contact']}.id  OR
                           {$this->_aliases['civicrm_address']}.contact_id =
                           {$this->_aliases['civicrm_contact_b']}.id ) AND
                           {$this->_aliases['civicrm_address']}.is_primary = 1 ) ";
}

By doing the above you can achieve what you wanted

But still you need to add condition to your address table based on the location type or select only primary flag

I guess this helps !!!


CiviEvent 4.7* Wordpress - calculated fees with default values doubled w/WP Plugin After setting up and configuring Civicrm 4.7.20 w/latest Wordpress (4.8.1 or so) I upgraded to 4.7.21 all seemed to go well.  Then I logged in and tried 'test drive' an Event, and 'live' registration. In 'live' mode, the default service fee I set up was doubled.   I created a test system locally and turned on debugging, tried Smarty debug and the relevant price set fields all looked correct. In NetBeans I checked the Register form after the setDefaults call, values were correct, but any price I set up with a 'default' was doubled by Calculate.tpl
I know this is very specific and I didn't expect to find a solution on stack exchange.

It turned out that the problem was due to a Wordpress plugin I set up called Inactive Logout (https://wordpress.org/plugins/inactive-logout/) caused the problem. Once I deactivated the plugin all worked well.
 Moral of the story: beware the smiling WP plugin, the javascript that bites, the session vars that snatch, beware the easy download and shun the frumious extension.
 On a serious note I think the plugin doubled the logged-in users but have to investigate.

It turned out the problem was caused by a call to wp_footer in src/inactive-logout-functions.php line 16, commenting-out that line fixed the problem and the inactive logout still works. wp-footer appends data to the /body tag


SYNTAX ERROR in Pledge Report when Balance Due is selected (ver. 5.18.2) CiviCRM ver. 5.18.2 (or 5.14.2) on Wordpress.

Hi all.

When Balance Due is selected in Pledge Report > Details we get a syntax error. Here is the error log:

 [error] $Fatal Error Details = Array
(
[callback] => Array
    (
        [0] => CRM_Core_Error
        [1] => handle
    )
[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] => SELECT SQL_CALC_FOUND_ROWS contact_civireport.sort_name as civicrm_contact_sort_name, pledge_civireport.id as civicrm_pledge_id, pledge_civireport.contact_id as civicrm_pledge_contact_id, pledge_civireport.amount as civicrm_pledge_amount, pledge_civireport.currency as civicrm_pledge_currency, pledge_civireport.status_id as civicrm_pledge_status_id, COALESCE(sum(pledge_payment_civireport.actual_amount), 0) as civicrm_pledge_payment_total_paid, IF(pledge_civireport.status_id IN(3, ), 0, COALESCE(pledge_civireport.amount, 0) - COALESCE(sum(pledge_payment_civireport.actual_amount),0)) as civicrm_pledge_payment_balance_due, (address_civireport.street_number % 2) as civicrm_address_address_odd_street_number
        FROM civicrm_pledge pledge_civireport
             LEFT JOIN civicrm_contact contact_civireport
                  ON (contact_civireport.id =
                      pledge_civireport.contact_id )

    LEFT JOIN civicrm_pledge_payment pledge_payment_civireport ON
      pledge_civireport.id = pledge_payment_civireport.pledge_id
      AND pledge_payment_civireport.status_id = 1

             LEFT JOIN civicrm_address address_civireport
                       ON (contact_civireport.id =
                           address_civireport.contact_id)  AND
                           address_civireport.is_primary = 1
WHERE (pledge_civireport.is_test=0 )   GROUP BY pledge_civireport.id, pledge_civireport.currency  ORDER BY contact_civireport.sort_name, contact_civireport.id  LIMIT 0, 50 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '), 0, COALESCE(pledge_civireport.amount, 0) - COALESCE(sum(pledge_payment_civire' at line 1]
[type] => DB_Error
[user_info] => SELECT SQL_CALC_FOUND_ROWS contact_civireport.sort_name as civicrm_contact_sort_name, pledge_civireport.id as civicrm_pledge_id, pledge_civireport.contact_id as civicrm_pledge_contact_id, pledge_civireport.amount as civicrm_pledge_amount, pledge_civireport.currency as civicrm_pledge_currency, pledge_civireport.status_id as civicrm_pledge_status_id, COALESCE(sum(pledge_payment_civireport.actual_amount), 0) as civicrm_pledge_payment_total_paid, IF(pledge_civireport.status_id IN(3, ), 0, COALESCE(pledge_civireport.amount, 0) - COALESCE(sum(pledge_payment_civireport.actual_amount),0)) as civicrm_pledge_payment_balance_due, (address_civireport.street_number % 2) as civicrm_address_address_odd_street_number
        FROM civicrm_pledge pledge_civireport
             LEFT JOIN civicrm_contact contact_civireport
                  ON (contact_civireport.id =
                      pledge_civireport.contact_id )

    LEFT JOIN civicrm_pledge_payment pledge_payment_civireport ON
      pledge_civireport.id = pledge_payment_civireport.pledge_id
      AND pledge_payment_civireport.status_id = 1

             LEFT JOIN civicrm_address address_civireport
                       ON (contact_civireport.id =
                           address_civireport.contact_id)  AND
                           address_civireport.is_primary = 1
WHERE (pledge_civireport.is_test=0 )   GROUP BY pledge_civireport.id, pledge_civireport.currency  ORDER BY contact_civireport.sort_name, contact_civireport.id  LIMIT 0, 50 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '), 0, COALESCE(pledge_civireport.amount, 0) - COALESCE(sum(pledge_payment_civire' at line 1]"]

Is this a bug? or is it the result of errors in setting the fields?

Thx&Bye.

This is a bug.  It only happens when you have modified the name of the pledge status "Completed" or "Cancelled".  In your case, "Completed" has been modified.

While you could change that label back, the report shouldn't crash regardless.  It was easy to fix, so I reported the issue then made the fix.

You literally need to change one word in one file, so if you feel comfortable changing the contents of a file in your CiviCRM directory, you can look at the fix I made and make the change on your site.  If you do, please report back on Github that it works - that will speed up the process of getting this fixed merged into CiviCRM for everyone.


Providing Smart-Group Specific Price Sets I see there is an extension that indicates it will allow group-specific price sets:
https://github.com/zengenuity/civicrm_groupprice

I'm running civi 5.20 on Joomla, and when I activate this extension and edit a Price set, I don't see the option to limit a Price Set to a group.

Is anyone using this extension successfully? I see is is built for civiCRM v4.4, so I'll hazard a guess it doesn't work with 5.20 .. but I wonder, what are people doing instead, to provide group-specific pricing?

My requirement is that I need to provide Member and Non-Member pricing for an event with several options (like Opening Night + Conf and Conference Only), and Members and non-members pay different amounts... How can I do this?

You could try CiviDiscount which offers options for eg auto-discounts for people logged in or using a checksum who are Members


Can I record contributions and pledge payments in a "Batch Data Entry" of type pledge payment? When using a data entry batch of type "Pledge Payment" can I record stand-alone contributions as well as pledge payments in the same batch?

(It seemed like I could do this in 4.6.0, but its not working in 4.6.3. In 4.6.3 I get the following message for contacts with no pledge selected: "Please correct the following errors in the form fields below:
You can not record two payments for the same pledge in a single batch." )

While in 4.7.7 (sorry, don't have a 4.6.3 environment to test), it is technically possible to record stand-alone contributions in a batch created for pledge payments by leaving the "Open Pledges (Due Date - Amount)" field blank and selecting the desired financial type, in a recent session at CiviCON 2016, Joe Murray indicated that best practice would be to record each type of contribution with the batch entry category that it falls into (i.e. use contribution for stand-alone contributions and pledge payment for pledge payments), although I clearly see the convenience of being able to record multiple contribution types in a single batch entry.

Hope this helps,
Tamar


Restore a deleted mailing? Is there any way to restore a mailing after you delete it? Or even find it?

We are using CiviCRM 5.8.12 with WordPress. We use Mosaico for some mailings.

Two answers:

Do you have detailed logging eanabled?  If no, then no - you can restore a backup of your database (to a test site) and copy the data out.

If you have advanced logging enabled: you can use SQL.  You need to know the ID of the deleted mailing - you can check the titles with SELECT DISTINCT id, name FROM log_civicrm_mailing.

Once you find the ID number, substitute the X at the end of this query for the ID.

INSERT INTO civicrm_mailing (id, domain_id, header_id, footer_id, reply_id, unsubscribe_id, resubscribe_id, optout_id, name, mailing_type, from_name, from_email, replyto_email, subject, body_text, body_html, url_tracking, forward_replies, auto_responder, open_tracking, is_completed, msg_template_id, override_verp, created_id, created_date, scheduled_id, scheduled_date, approver_id, approval_date, approval_status_id, approval_note, is_archived, visibility, campaign_id, dedupe_email, sms_provider_id, hash, location_type_id, email_selection_method, language, template_type, template_options, modified_date) SELECT id, domain_id, header_id, footer_id, reply_id, unsubscribe_id, resubscribe_id, optout_id, name, mailing_type, from_name, from_email, replyto_email, subject, body_text, body_html, url_tracking, forward_replies, auto_responder, open_tracking, is_completed, msg_template_id, override_verp, created_id, created_date, scheduled_id, scheduled_date, approver_id, approval_date, approval_status_id, approval_note, is_archived, visibility, campaign_id, dedupe_email, sms_provider_id, hash, location_type_id, email_selection_method, language, template_type, template_options, modified_date
FROM log_civicrm_mailing WHERE log_action = 'Delete' AND id = X;


How do CiviCRM profiles hook up with Drupal? We have been using Drupal and CiviCRM for 5 years or so to edit profiles. Setup via the Administration -> Customise Data and Screens -> Profiles.

It is now saying 'The changes have been saved' and reloads the form with the old data rather than updating the CRM database.

I have been searching the drupal folder in civicrm for a submit hook and anything to test the connection. How does it work?

Drupal 7.41 and Civicrm 4.5.8.

The question was 'how do I debug this from first principles' so that I don't have to work from my sometimes flawed knowledge of the application.

The solution was to turn off a panel that was overriding the CiviCRM forms. This is readily discovered by looking at HTML source code as panels prints out the panels classes and they didn't look right.

Trying to debug the source code was no use in this case and cost a couple of days effort. If you want to check that civicrm is running or follow the form creation process start at civicrm_form_alter() in a drupal system.


Wordpress 4.7.x Installer issue After activating the CiviCRM plugin within Wordpress and opening the 'CiviCRM Installer' I am unable to alter the CiviCRM Database settings fields to point to my CiviCRM database.

The fields are pre-populated with my Wordpress database details and whenever I alter them and press 'Re-check requirememnts' my details are removed and the Wordpress database details re-appear.

Windows Server 2012 R2
IIS 8
php 5.4.45
MySQL 5.1.73
Wordpress 4.4.1

The installer for 4.6.x works fine, after upgrading to 4.7.x, the upgrade is successful but I receive Datatables warnings on fields with Tab with table Display styles (such as Relationships) and wanted to try a fresh install.

Has anyone experienced this behaviour before, or able to help me resolve this?

Many thanks
Russell

I have seen this behaviour too. Just make sure your database details are correctly entered, then use the "Check Requirements and Install CiviCRM" button above the details instead.


Can I search "Added By/Modified By" with a contact ID instead of a name? First, I'm French and my english is not good, sorry.

currently using CiviCRM (4.6.10) production coupled with Joomla (3.5.0) (thanks to this forum), I currently have a problem with the smart group and the search criteria.

Indeed, to add users to the group dynamic I use the search term "Added by" in the Advanced Search section of ChangeLog.

In this field, we can insert only the NAME of the onscreen user. The problem is we have several employees with the same name and therefore the "contacts" of any one of those employees is seen by all who have the same name.

1) Is it possible to change this search to replace the name with the contact_id the database?

If this is not possible at present in the database in the table "civicrm_saved_search" the "where_clause" a group for example:

( contact_b_log.sort_name LIKE '%dupont%' )

2) Is it not possible to change this "sortName" to match the contact_id collaborator?

3) If you see another possible solution?

Thank you in advance to those who have an idea for my problem,

Lionel

Bonjour. I think you are using the field in the Change Log, Modified By (Added by) - ie 'Journal of Change' is your translation of the French version of 'Change Log'.
You are right, currently it is just used as a 'text' field. So Advanced Search is not going to help you.
And the field is not currently available in Search Builder either.
And there is no Custom Search for this.

So, if you have developer/funds is to add the feature to one of the above.

Or create an extension that does the above automatically.

The only other thought is that you could consider another approach, such as, if you are using Drupal you could have your team 'add' contacts through Drupal Webform - and create a Relationship between them. The benefits would be that you could then

search by the Relationship and then create a Smart Group
use the Permissioned Relationship extension so that user 'Jean' could only see contacts that they added.

Hope some of the above is helpful.


Creating tags from fields Is it possible to create tags from fields, where someone selecting a certain option tags them with that option. I.E. selecting the volunteer option tags the new contact as volunteer?

This is possible with CiviRules.  However, I'd argue that in most cases you'd rather use a Smart Group.

If you're committed to using CiviRules though:

You'll need two rules.  One with a trigger of "Any contact is added" and one with "Any contact is changed".  If this only applies to individuals, you can substitute the appropriate triggers.
The condition will be "Field Value Comparison".
The action will be "Add tag to contact".

Note that you may want another rule to remove the tag if the field is changed and the condition no longer applies.


Beyond provide a profile of an instance's stack, what is the purpose of Connections? I am seeking information about the Connections admin area (Administer>System Settings>Connections):

I have seen in one instance that there is something that can be set up here to generate a site profile that provides info about the instance without exposing sensitive info like filepaths. I can see how this is useful but it seems oddly placed and like there could be more to it.

Is there anything else that can be set up using this function? I have searched in documentation and not found any info. I am very curious (on behalf of a client) about what this is and what its uses are.

It is described a little bit here: https://issues.civicrm.org/jira/browse/CRM-16173

Seems like the intent is a generic framework. I believe this link is a reference implementation of how to write a service that would interact with this framework: https://github.com/civicrm/cxnapp

Maybe others know of some real services that do implement this.


How can I find the code that produces a certain error message (e.g. "Sorry, can not load CMS user account.") When confirming donation I'm receiving the following error message "Sorry, can not load CMS user account." How can I track down which file this message is generated in?

Other details: I'm working through the vanco payment processor 4.1 code to make it work with 4.4 CiviCRM. The URL is similar to: www.domain.org/civicrm/contribute/transact

This particular phrase appears to be in these files:

./CRM/Utils/System/Drupal.php
./CRM/Utils/System/Drupal6.php

Here are two ways you can search for specific phrases within the codebase:

1) GREP

Using this command from the base civicrm directory:

>  grep -R "Sorry, can not load CMS user account." ./

2) GITHUB

And if you don't have a command line handy, you can do the same on the CiviCRM GitHub page with the "Search this repository" function at the top (using the quotation marks to search for the exact phrase):


Using Civi for a signposting service I am trying to see if there is a way we can use Civi to help our signposting service.

Workers talk to a client about their lives and as a consequence may want to make a referral to a number of different agencies (max = 5 at one time)

Is there a way the worker could select a number of external organisations and with one click send a referral email with basic name/address information?

Thanks

Graham

welcome to civi and SE.

There are a number of ways to address the requirements and partly would depend on your CMS.

For example with Drupal you can use Webform module (with civicrm integration) as a simple way of recording an interaction, then choosing the required 3rd party, pulling in their email and therefore sending an email, from Webform. The text of that email can be tweaked to provide whatever information needs to be passed on to them.

In pure civi this would be handled by creating an Activity and 'assigning' it to the 3rd Party, and this causes CiviCRM to fire off an email (assuming that setting is 'on' for your system) but you don't have much control, out of the box, as to what gets sent.


Webform: "not you" message - I can't find it! I use webforms quite a lot including for data entry. Normally when I enter data I enter it when I am logged out so that the data gets added to the correct record and not to the record of the logged in user.

However I would like to enter data and use the private field option of webform - to do this I need to be logged in.

I see on the webform set up there is an option:

Prompt for users who are logged in as, or following a hashed link for, someone else.

Display message to known contacts?  [yes]

I have enabled this however when I am logged in I do not see this message. When I view page source it is there "h2 class="element-invisible">Status message
 ul>
  You are viewing this form as XXXXXXX. Please click here if that's not you.
  You have already submitted this form. View your previous submissions."

So I am wondering why the message has been rendered invisible?

I have had a look at form settings and so on but I cannot find a tick box which explains how I have managed to make it invisible!

Any tips as to where to look would be gratefully received!
Thank you

In the CiviCRM section of your webform, the third section down is "Not You?" Message. There's a check box there for "Display message to known contacts?"


Can "Contributions - Recurring Billing Updates" and similar messages be turned off? We'd like to turn off Contributions - Recurring Cancellation Notification, Contributions - Recurring Billing Updates, and Contributions - Recurring Start and End Notification. We don't want the messages to be sent.
Generally, we update people's billing information from the backend. In this case, we don't want to send confirmation messages automatically. Sometimes we have to cancel a recurring donation and create it again to get the right financial type, etc. and in that case we definitely don't want email notifications going to donors!
Is there any way to entirely disable all these notifications?

This is untested but in hook_civicrm_alterMailParams you can check $params['messageTemplateID'] and if it's one you care about set $params['abortMailSend'] = TRUE.


How to mail to the default contact person of a member organization with more employees? I am working for a customer that has organizations as members.  The employees are also registered, and a member organization must have a main contact. All official communication is sent to the main contact.

But sometimes a member has a compliance officer, depends on the size.
Special mailings about compliance must be sent to the compliance officers if an organization has one. Otherwise, it must be addressed to the main contact.
We have not decided yet register the compliance officer. It can be a separate relationship or a group on the contact.

Any tips how to achieve this?

One way of approaching it is with a handful of smart groups:

Lets assume you create compliance officers as individuals and link them with a 'Compliance officer is/of' relationship

1) Create a smart group of 'Compliance officers of member orgs' by using Advanced Search to search for organisations that have a current membership and setting 'Display Results as' to 'Related contacts' and the relationship as 'Compliance officer of' - this is the first group to add to your mailing.

2) Create a smart group of 'Member Orgs'

3) Create a smart group of 'Member orgs with compliance officers' by searching for members with a 'compliance officer is' relationship

4) Create a smart group for 'Member orgs without compliance officers' using  Search > Custom Search > Include/Exclude search and the last two groups you just created

5) Create a smart group of 'Main contacts of member orgs without compliance officers' similar to 1) using 'Member orgs without compliance officers' and Related contacts/Main contact of - This is the second group to add to your mailing.

Use too many layers of smart groups and your server will be gasping for air, but it might work if your numbers are not too large.


CiviCRM Upgrade after 4.0: do I need to update civicrm.settings.php? From the CiviCRM Upgrade for Drupal wiki article, step 9 indicates that all versions 4.0 or after require editing the civicrm.settings.php file, and provides two options to accomplish this.

  CiviCRM 4.0 and above requires definitions in civicrm.settings.php which previous versions of CiviCRM did not have. There are two methods to put these required definitions into your install:

  Create a "dummy" database and install CiviCRM fresh into that. You will need to rename or move your existing civicrm.settings.php. Running the installer anyhow will automatically create a correct civicrm.settings.php file. Then either replace that dummy database with your real one and proceed with the upgrade OR edit the new civicrm.settings.php to point to your real database.
  Add the definitions manually to your civicrm.settings.php file as below:

  If your civicrm.settings.php does not have this section, copy and paste from here into civicrm.settings.php: [settings follow]

If the upgrade is starting from a version that is already 4.x, can we completely skip step 9 or what is the recommended way to handle this step?

https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Drupal+7

No, those settings should already be in your civicrm.settings.php - but it would only take a moment to check your file and ensure the values on the wiki page are there.


Export Contacts after Include/Exclude Search: Selection of Fields not possible After doing an Include/Exclude Search I want to export the contacts found, so I select "Export Contacts" from the "Actions"-drop down menu.

However there is no possibility to select the contact-fields I want to export, there is just the CiviCRM_Contact_Search.csv file generated containig the following fieldes: "Contact ID","Contact Type","Name","Group Name".

Is this on purpose, a missing feature or a bug?

Missing feature I would suspect. Can you step around it by just adding the contacts from your search result to (yet another) Group, then Export from the standard Search?


Bug: adding new contact through relationship limited to subtype I have a custom relationship type that is has contact B limited to a contact sub-type. Now when I go to a contact to create add this custom relationship and use as related contact New individual create a new relationship for this custom relationship, then it always fails with the error message:

  1 invalid relationship record 1 relationship record was not created
  due to an invalid contact type.

I think this is a bug. When you use New individual from the context of a relationship that needs a particular sub-type, then you would expect that the new individual is automatically created with that sub-type. Otherwise the convenience of on-the-fly creation has become useless.

I have been able to reproduce this error on the demo site.

Can someone confirm this?

I just replicated this.

First, let's discuss the workaround:  Go to Administer menu > Customize Data and Screens > Profiles.  Click on "Reserved Profiles" and edit the "New Individual" profile.  Add the "contact subtype" field and save.  Now, when creating on-the-fly individuals, you can select their contact subtype.  I tested and confirmed that this works.

As for the original problem, I agree that this should probably be considered a bug.  However, given that this is a relatively infrequently-used workflow with an easy workaround, I doubt the core team will be investing resources into its fix.  I'm sure they'd welcome a patch though.


Is it possible to stop individual users from sending mail? I have some users who are only able to access reports, and I would like to stop them being able to directly send mails to contacts from CiviCRM.

I found this 10-year-old information on the old forums -- apparently the "view contact" permission inherently includes the ability to send mails to contacts.  That post hinted at a "patch" and that maybe the functionality would be added later...does anyone know if this is currently possible? I haven't found a permission that controls email send access.

I'm using Joomla 3.9.13 and CiviCRM 5.18.2.

The 10 years old solution seems to be the best one, have you tried and would it be possible to remove the view all contacts permission to your users that should only use the reports?

Otherwise, it shouldn't be too complicated to alter the UI and remove the send email actions on a custom extension, but that would require some coding


PayPal Pro IPN returns 403 error Have been receiving email from PayPal that IPN is not working. One off donations were updated but not recurring payments. I am on CiviCRM 5.16.4

How can I fix it please?

I have tried this but still not working
anyone getting "IPN warning" emails from PayPal?

EDIT: Content of the email, also added a screenshot of the paypal IPN screen

Dear Tapash Datta ,

Please check your server that handles PayPal Instant Payment Notifications (IPN). Instant Payment Notifications sent to the following URL(s) are failing:

https://example.com/sites/all/modules/civicrm/extern/ipn.php

If you do not recognize this URL, you may be using a service provider that is using IPN on your behalf. Please contact your service provider with the above information. If this problem continues, IPNs may be disabled for your account.

Thank you for your prompt attention to this issue.

Yours sincerely,

PayPal

Having reviewed this I believe that your Paypal is possibly configured to point to an older version of the IPN path.

You can change this yourself within your Paypal account, the docs I can see suggest:

To configure Instant Payments Notification (IPN) for your PayPal account Click: Profile, under Selling preferences click "Instant Payment Notification preferences"
It looks like yours is currently set to: https://domain.org/sites/all/modules/civicrm/extern/ipn.php

However, it should now be set as: https://domain.org/civicrm/payment/ipn/3 where 3 is the payment processor id which you can get from Payment Processor screen(Administrator >> System Settings >> Payment Processor). This should fix any new payments setup / made.

For recurring payments that have already been setup what you would need to do is make a change to the site so that those old / failed recurring payments get forced onto the new path, once you've done that you'll need to 'replay' all the previously failed recurring payments from Paypal terminal. Depending on the number of transactions involved, this may involve some work from yourself in the Paypal site again. Or the other method is to use Notification log extension to do replay of failed transaction.

Cheers

Pradeep


How to register a unknown company for an known event participant? we are using the civi event module and are currently registering participants for an event. Some of the participants replied that they will be accompanied by a friend or someone else without giving that persons name. Since we don't need these details really, we are searching for a way to register that first to us known person plus the unknown second participant. Has anyone an idea on that? Albeit what we need out of the civi event module at the end is a correct number of participants to plan the seats.

Thanks for looking into that problem. Best regards

Esther Reichert

It sounds to me like using a Price Set that allows the user to enter the number of people coming as an integer. Set the Price Set field to count each as a participant, then you will get your total number.


Import Contribution failing, how to fix? Receiving following error in drupal when importing contribution from a csv. Is there a quick fix for this?

Error: Class name must be a valid object or a string in
CRM_Import_Parser->parsePseudoConstantField() (line 565 of
/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Import/Parser.php).
Notice: Undefined index: bao in
CRM_Import_Parser->parsePseudoConstantField() (line 563 of
/home/webadmin/public_html/cmm/sites/all/modules/civicrm/CRM/Import/Parser.php).

These are the fields I am trying to import

ContactID

Total Amount

Financial Types

1 Custom field (I have    imported this custom fields previously)

Eligible for giftaid (giftaid    extension) (I have imported this
previously)

Received Date

Contribution Source

This patch fixed the problem. Thanks to @skherraz

https://lab.civicrm.org/dev/core/issues/1269


Is there a way to use the same webform for anonymous submission and for back office queries, i.e. hide existing contact box for anonymous I've created fairly length webform that we use for registration and getting interest.  People can either fill it out online or via a paper form that the back office then enters.

For the back office I want the existing contact box so they can query up existing contacts.  For anonymous users that box is confusing as they can't do anything with it.

Is there a way to change the behavior and visibility of that box based upon role.

Right now I have two almost identical webforms.

We also use the same webform as a link in email with the cid and key for users to update their info.

In your webform, add a hidden field called Role

set the default value to the token [current-user:roles:first]
set the type to 'Hidden element'  (Secure value looks like it should work but didn't in my test.)

Then on the Conditionals tab add the rule:

If Role is anonymous user
then Contact1: Existing Contact isn't shown


Why I am not able to select more than 500 records (CiviCRM 4.6.10)? After a search, if I increase the no of records to more than 500, although I can select them, but when performing an action, it only applies to 500 records.

Could it be an issue with my PHP value or a known issue with CiviCRM?

UPDATE: as you can see here, although I have increased the value at the bottom of page to 1500, and it shows 1500 records, but as I select them using the check box, it only shows 500 selected Records only.

I checked and see the same limit when you select manually. So it seems not a PHP value. If you use the "All 1766 records" button you can exceed this limit.


civimail sending email multiple times I use civimail on a drupal 7/CiviCRM 4.7.8 and have done so for many years.

Recently civimail has started sending out an email multiple times to the same email address even though

1) the email address only exists once in the system.

2) In the sql database under civicrm_mailing_recipients it only says the email contact receives it once and this is borne out in the activities tab.

This is not just happening with one email address - it's happening with hundreds of email addresses.

Any ideas on where to start troubleshooting?

Thanks
Caroline

Preferably, you'll want to dig into your outgoing mail service logs. How you do that depends on how you've setup civimail. It might be as simple as inspecting a file like /var/log/mail on your server, or it might involve something more complicated if you're using a remote outgoing mail service.

The challenge is to figure out which part of the mailing process is generating multiple mails. Typically this would occur where one server is passing off the mail to another server, and it's being received but not acknowledged, so the first server tries again later. A bad firewall, or misconfigured server along the way, for example. This would show up with the multiple mails having different receive times.

If you don't have access to your maillogs, inspecting the raw mail headers of the received mail may show some clues (e.g. warnings by one or more of the servers that are handling your mail).


How can I automatically add a Capability or additional Role in WordPress based on the data stored in CiviCRM? * EDIT * We have a multi record custom data group with a field called "Status". When this field changes value to "Completed" we want people to see specific pages in WordPress.

I have tried to setup a Smart Group and link this to a Role in Civi using Groups Role Sync, but this plugin does not work with smart groups.

I created a Parent ACL group of the smart group in question, but this is not being populated.

I've also tried creating a CiviRule to add a membership when custom fields are edited and then use the membership sync to role plugin, but CiviRules can't evaluate the values in multi record custom data groups (for understandable reasons).

So.... I was wondering if anyone had any other ideas of how we can automatically add a capability or role in WordPress based on the data in CiviCRM? Maybe someone could share some custom code for a plugin to do this, similair to this answer but for WordPress?

I'm not sure what "Groups Role Sync" is (I suspect it's a Drupal module) but you can use CiviCRM WordPress Member Sync to sync Contacts with Memberships to WordPress Users with Roles or Capabilities. FWIW, the plugin doesn't support Smart Groups either.


Cannot Edit CiviCRM Profile via Drupal I have created a CiviCRM Profile called "Edit Details" i have checked:

View/Edit Drupal User Account
Standalone Form or Directory

It Displays correctly with no issues however when i go to edit it nothing happens, it does not add in the fields.

This is me trying to edit it as a Administrator so all the permissions are enabled.

Another thing i realised when saving the page it removes my Drupal Roles which is really weird. This is only when doing this with the CiviCRM profile.

Is there another way i can put CiviCRM fields onto the Drupal Edit page other than profiles.

Thanks

Is there another way? Yes (not necessarily a great way)

1/ make a Webform-civicrm form, and set it to work as a a block showing on user/* and user.

2/ make a View showing the data in a block on /user with an Edit linking going to a webform.

That said, I have never seen a Profile not work in the way you are describing so it sounds as if something else is tripping you up.


Can I report data from a disabled custom field or option? I'd like to disable some custom field fields, because we no longer want users to enter that data. But then I can no longer see the field in report filters. Is there another way I can get that data out without re-enabling the field?

I would also like to disable some field options. Is the data preserved? Assuming so (maybe I shouldn't) how can I report or export it after it's disabled?

Thanks everyone

Thanks for the suggestions - however, I'm new to CiviCRM, what is CSS?  I think being able to change the visibility in the field when inputting would help, but you'd still have to have it visible for reporting.  (Other systems I have used just have a 'selectable' option tick box for each entry in the pick list - but this only controls new choices in a pick list, as all options are available for reporting.)

You might consider using css to hide the fields not in used, in this case you can still have them available for reporting,


Fatal Error when renewing membership after Upgrading to 4.6.16 Since upgrade, I am not able to renew membership from backend. As soon I press RENEW I am getting this Fatal Error message:

2016/05/13 11:57:55 [error] 8711#0: *2228 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot pass parameter 2 by reference in /www/demo/sites/all/modules/civicrm/api/v3/utils.php on line 1408" while reading response header from upstream, client: 185.59.126.181, server: demo.com, request: "POST /civicrm/contact/view/membership HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm/demo.com.sock:", host: "demo.com", referrer: "https://demo.com/civicrm/contact/view/membership?action=renew&reset=1&cid=398&id=52&context=membership&selectedChild=member"

Can anyone help please? how to fix this?

@Tapash - I just tried to reproduce this on one of our live 4.6.16 projects and I can not.

From a Contact's Membership I'm successfully able to both:

more -> Renew [no errors; renewed properly] &
more -> Renew-Credit Card [no errors; made payment; got receipt; renewed properly]

I've also checked the JIRA issues and I don't see anyone else describing what you're observing. Considering your other Q as well - I'm wondering if perhaps something went wrong during your recent upgrade?

General recipe for this is to restore both code base (files) & databases back to 4.6.14 and then to run the upgrade script [to 4.6.16] again. If you can: run it via drush - it may give you some warnings/errors that give you some insight as to what's going on.

  sudo -u apache drush civicrm-upgrade-db


Basic Wordpress user cannot see CiviCRM I have installed CiviCRM on Wordpress and done the setup.
I have created a basic (subscriber role) in WP, have filled the Permissions (Access Control) table for this role, synchronized the WP contacts with CiviCRM. When this user logs into WP, he do not see the CiviCRM menus nor dashboard...
What is the CiviCRM URL for this user ? I have read the documentation, but nothing about it...
Which configuration is missing ?
Thanks for your help

* Next to my question *

First of all, I have not designed other roles than the two that are predefined : Administrator and Authenticated. As I understand, I do not need other roles for the moment. My test user has the Subscriber role in Wordpress.
I also have read carefully the documentation.

Next, I have logged in as Administrator in Wordpress&CiviCRM. In the CiviCRM top menu, I go to Administer ->Users and Permissions -> Permissions (Access Control). And there, I enter in WordPress Access Control. I see then an ACL table and I have checked quite all boxes under the Subscriber column.

But nothing changed : a subscriber user does not see the CiviCRM plugin. And the CiviCRM dashboard for this user does not show even if I type "https://mysite.org/wp-content/plugins/CiviCRM (is this the correct url for CiviCRM under Wordpress ?)

Thanks a lot for your help.

I'm still stuck with my access privileges problem. Users connected with the "subscriber" role in WordPress do not see the CiviCRM menu in the left WordPress menu.
However, it seems that I have configured correctly the permissions in Administer -> Users & Permissions -> WordPress Access Control.
Any ideas? Many thanks

After having tested all the possibilities by checking and unchecking all the options marked in the WordPress Access Control pane, I found that the box
"CiviCRM: access CiviCRM backend and API" must be be ticked. Otherwise you dont have access to CiviCRM. Strange because it is told to give this to trusted roles only.
The well done documentation is unfortunately lacking on this subject.


will ssl certificate on main domain work on subdomain docs say that CiviCRM does not support shared SSL and "SSL must be installed on your domain not one at a higher level"

What about subdomains?

I have WP installed at site.com and WP with CiviCRM installed at civi.site.com

Do I need to be able to install SSL on civi.site.com or will it work from site.com?

There is nothing specific about civi on your question, it is possible to use a wildchar certificate (*.site.com) or one that works for several subdomains.

If you want a simple and free certificate and that isn't offered by your hosting company, I recommend you "let's encrypt".


What is best practice for updates? Core updates are frequent, so are some extension updates.

How frequently do people update?   All of them or only sometimes?

Do you always up date to the latest version or pick one that is a little older?

How do you know the update is not loaded with dodgy code or ransomware?

Working with highly sensitive data and I am concerned about the vetting process for updates.

Thanks in advance

There is no clear policy for this. But it is good to put CiviCRM behind a firewall/VPN. That way you can only access civicrm if your ip address is allowed. For connecting external websites/application you can then use CiviProxy.

This way CiviCRM and your data are secure, no matter whether your CiviCRM installation has securty issues.

My personal advice is that when it aint broken don't fix it. So that also means for updates, if your system still works and you don't need any new features keep it as it is. We are brainwashed by Android and Windows which install updates automatically and so we all think it is good to install updates regularly however I cannot think of a rationale for that.

Also I do think that installing updates is not much work from a technical perspective. But with every update you have test your whole setup and see if nothing ain't broken. And this test work is usually quite a lot of work.

My experience is also that the organization using CiviCRM is also changing over time. And that those business changes might also require some (minor) changes in your CiviCRM setup/configuration. And usually when doing those kind of things it might be worth to also update to the latest version.


CiviBooking 1.5alpha error Not sure if this is best place or Github, anyway, using the 1.5alpha on CiviCRM 4.7.8 & Wordpress 4.5.3

When trying to access the Bookings - Find Bookings tab I get the following error

Fatal error: Access level to CRM_Booking_Form_Search::$_defaults must be public (as in class CRM_Core_Form) in /var/sites/h/hbb.org.uk/public_html/wp-content/plugins/files/civicrm/extensions/civibooking-1.5alpha/CRM/Booking/Form/Search.php on line 10

The rest of the alpha build seems to work great for me.

Thanks for reporting this.

From the error message it seems that some CiviCRM core changes made from 4.6 to 4.7 needs to be reflected in the extension code.

We will start looking into this. Please post the ticket in our extension Github: https://github.com/compucorp/civibooking and we will post responses regarding any update.

Best


What does "Result Column? 'In Sector' Cannot be checked with participant" mean? Im trying to create a profile form that connects to a speaker - participant profile for event hosts to review speakers. I created a custom field set and now and trying to put the questions into the profile form.

I want the results to be displayed only to people with permission as well as the form. When I edit the form and indicate that it is visible ONLY to "User and Admin" then it gives me the error attached.

How do I deal with this?

There are two fields Searchable? and Results Column? that make sense only for Public Pages and contact profile.

The field Searchable ? should be automatically unchecked when setting the visibility to "User and User Admin Only". When testing in http://dmaster.demo.civicrm.org in doesn't seems to be possible to even check them in a participant profile context.

Anyway, you might be able to submit the form by doing :

change visibility to Public Pages
uncheck Searchable? and Results Column?
change visibility back to User and User Admin Only

If that doesn't work, i suggest you udpate your CiviCRM to latest version.


Is there a way to apply acl to CiviMail's mass mailings? My collegues need to hide some sensitive mails in mailings list and activities by acl persmissions. Default users shouldn't have access to mailings assigned to role "Chief staff".

How could this be achieved?

Users shouldn't be able to see mailings if they don't have access to the groups that the mailings are to.  Note that this was broken not too long ago, so make sure you're using a newer version; see here; also relevant is this and this, which help if someone saves a draft of a sensitive mailing without specifying a group.

Also, note this patch, which is a related but different issue, and hasn't been merged into core yet.


Currency in webform billing items always dollars In my installation, under admin/setting/localization, I have enabled multiple currencies. The default is $. The monetary amount display is %c %a.

If I create a new contribution page in CiviCRM, I can choose a currency for that page. I've chosen €. Regardless of the setting, it displays $ in the contribution page edit form, but on the preview and live links in CiviCRM, it shows €.

If I create a webform to use that contribution page, the contribution amount widget shows $. Also, in the webform output, the #wf-crm-billing-items table shows the amount in dollars, see below.

I haven't tested, but I expect it will actually charge € from the webform. I also want it to display €.

I have cleared all sort of caches. Is there a setting I am missing or is this a bug ?

PS - interesting little snippet I can do in the console on that page :

CRM.formatMoney(9.99)
"$ 9.99"
CRM.formatMoney('init', false, '€1,234.56');
undefined
CRM.formatMoney(9.99)
"€9.99"

So that you can actually do

   <script>
    jQuery(document).on('ready',function() {
      CRM.formatMoney('init', false, 'RM1,234.56');
      jQuery('tr[data-amount]').each(function(){
         var $this = jQuery(this);
         var amount = $this.data('amount');
         $this.children('td').eq(1).text(CRM.formatMoney(amount));
      });
    });
    </script>

But, not accepting that as an answer.


How to setup civicrm to handle bounces? A general question. How do you make bounces to work with civicrm?
Which extensions do you use, and by whom and how do you set up / handle the mail and also the bounces?
Kind regards.

Here is the documentation to setup bounces in Civi.
Also there are various third party mail providers available that captures bounces and for most of them extension are available in CiviCRM to record bounces eg Mandril, Sparkpost, Mailchimp etc


Mosaico extension uses Is anyone using Mosaico for designing a newsletter?  Is it easy to use?  Can you send a newsletter directly through mass mail? I would appreciate any comments.
Thank you.

Welcome to Stack Exchange OSRT!  Yes, you can use Mosaico for designing newsletters. Whether it is easy to use is a matter of opinion, but probably most would agree it's pretty straightforward.  You create your newsletter within CiviCRM using the Mosaico extension and then send it out from there.

The main CiviCRM demo sites are not using that extension, but you can watch a quick demo of Mosaico itself and try it on the Mosaico site.  Note that the way Mosaico is used within Civi is slightly different but the basic use is the same.

You will also need to configure your system to send email.