PayPal Contributions listed as Pending (Incomplete Transaction)

See this thread - I have to overwrite ipn.php with an old version after every upgrade, to get payments working again Paypal payments - Pending (Incomplete Transaction)


Why does setting "CVV required for backoffice" to 'NO' also unrequire it on front facing forms

This is a bug and I have opened a JIRA ticket and will update when something comes of that.


It's not completely clear the whole history of what happened to the instance, but it appears that you managed to run the upgrade script twice, and it choked the second time because the fields had already been inserted on the first run of the upgrade.


Signature error using AWS SNS/SMS to send SMS message using Civi extension - uk.compucorp.civicrm.amazonsns

Found the problem.   AWS has an option for a user to have either console usage or programmatic or both.
need to set programmatic use  when creating the user and permissions for SNS as needed.  Full SNS access permissions seem to work fine.


Questions regarding offline contribution receipt

I don't think a copy of the receipt is stored in Civi - If you need to send a copy again you need to manually edit the record - set the send email flag and save the same that should resend a copy

Also for imported data/any contribution - you can use find contribution and select all the contribution and select the option of "Receipts Print or Email" this will send email for all selected contributions

I guess this helps !!!


Checking across all email addresses for contact registration

On the Drupal side, there is a Multiple Email Address module that will allow for multiple emails to be associated with the same user account (not sure if you can configure specific email fields to map to the corresponding location types in Civi such that whatever changes/additional emails are added on the Drupal side would be communicated to the same contact record on the Civi side - you might want to check on that). The first paragraph at the link above indicates the following:

  Only one e-mail address is considered to be the "primary" email address, and will continue to behave as normal. Non-primary accounts are mostly functionally meaningless, except that during user registration any e-mail address registered to a user cannot be used to create a new account.

The Multiple Email Address module will in effect prevent duplicate contacts from being created in Civi as well.

Without this module, there is a 1:1 relationship between a drupal user account and a primary email address of a Civi contact record (keep in mind, the primary email address can be of any location type - if you were able to login with more than one email address without having the above module installed, it may be that you have duplicate contact records in Civi with a different email location set as primary - you can check the civi contact IDs associated with the drupal user IDs directly in the database in civicrm_uf_match). With regards to duplicate matching, the default behavior is as follows:

When a user creates a Drupal user account using anything other than a primary email address of an existing Civi contact record, a new contact record is created in Civi
If a user attempts to login with an email address that is not their primary email address, they will not succeed
Conversely, Drupal does not allow a duplicate user record to be created for the same primary email address

You mention additional email fields are not displaying in the Name and Address profile - I am assuming this is a Civi profile configured with email fields of various location types - the same behavior happens on my end and I have a faint recollection of this being a programmed behavior to avoid overwriting the primary email address - but not 100% sure about this - anyone else who can confirm that please chime in.

Hope this helps!


Custom Field doesn't appear in Drupal views using civicrm entity module

If you have the link to the image file in the view then I would try rewriting the results of that field. Set it up as an
<img src=[token that has path to image] />.

Then you can add a class to it and style it as you wish.


I just tried this on dmaster.demo.civicrm.org

http://dmaster.demo.civicrm.org/civicrm/admin/uf/group/field?reset=1&new=1&gid=17&action=browse

This profile now has more than 6 fields


Looks an interesting service and will suit many and certainly a good way of getting started. I can't see a contact email for the service or a list of the extensions included. I think I've probably already grown beyond this service as I am using a few extensions, but had it been there when I started, it would probably have been quicker that getting it going on another hosting provider.

But to answer you question - it does look to be monthly - see the T&Cs linked from the signup page (direct link https://civicrm.org/spark-terms-and-conditions).


Profile error on existing Contribution Page

It sounds like the Profile that you are using has a field in use that may be a field that is set to only function for certain Membership Types, and that the Contribution page that you are showing it on does not offer that Membership Type.

I suggest you

go to Admin > Customise > Profiles and find the Profile in question
examine the fields in use on that Profile
go to Admin > Customise > Custom Fields and find the Field set that contains the field(s) in question
examine the Field set (via Edit) and see what entities eg Memberships it is set to operate with


What is the proper CiviCRM response when an Authorize.net CC transaction is declined?

Usually Civi displays an error message from Authorize, e.g., The card number is invalid.  Perhaps the user missed it?

I assume there are no odd CSS settings in your theme that might be hiding the message.


Report with filter 'yesterday' produces no result

The transaction_date field lives in civicrm_financial_item. Not sure that helps you much though.


Need to redirect when permission issue happened on CiviCRM Page

You can do this by specifying your custom Fatal Error Handler at Administer -> System Settings -> Debugging and Error Handling.

Enter the name of the function eg myCustomErrorHandler for Fatal Error Handler input field.
Define this function in one of the extension .php file. The param should hold the message of the error and if it matches the permission text msg, you can use redirect function to navigate to the login page. Eg.

function myCustomErrorHandler($params) {
  if ($params['message'] == 'error message') {
    CRM_Utils_System::redirect($urlyouwant);
  }
  return FALSE;
}

Note the return statement in this function. FALSE is required to call the default error handler in case your function wasn't able to do the needful.
return TRUE; will not call the default Error handler in CiviCRM.


After upgrading to 4.7.24 then to 4.7.25, I observed that the issue with the No displayName after editing or creating came back.
This is strange that Release Candidate CiviCRm version 4.7.24 was the only fix.
Does-it concern other people and other installation ?


You are adding a new option for an existing field, rather than creating a new custom field.  The existing website token will show the URL of your new website type: {contact.url}   But if you want a token to show the website type (to output 'Portfolio'), you would need to create one


Allowing a contact to update their related contacts via Webform-CiviCRM

If you have the Spouse and the Child set up with Relationships - and you configure the webform to have 3 contacts, and you set the contact 2 "Existing contact" webform component to have a 'default value' based on 'relationship to contact 1' then I would expect that using a checksum for contact 1 should result in those other contacts being prefilled. Is that what you need?


Thanks for the reminder about the logs. The CiviCRM logs had nothing in this case, but the apache error log showed (after a little digging and web searching) that I was missing the bcmath module for php. I expect that my similar problems will reveal other php errors and will start tracking them down.
Thanks again


How can I display only Cases without Case Managers using Drupal Views

You are close.
Add a Contact A relationship and use  CiviCRM Relationship (starting from contact A).

Add both Display Names fields.

In filters, add CiviCRM Relationships: Contact ID B and set it to empty.

Here is a copy of a view of CiviCRM Cases.

And a pic of the filter:

Update to solve multiple cases:

To solve the folks with multiple case types issue, I created this page view but filtered for only one case type.  I then added attachments to the view page for all other case types.


How to generate a receipt when Pay Later contribution is received

There are 2 ways of recording a pay later contribution

Find related contribution, click on more link and then record payment. Or on view contribution page click on 'Record payment link'. Fill in the details and tick 'send receipt' checkbox.

Edit the contribution and change the status from pending to completed with 'send receipt' checkbox ticked.

Note: #1 is a new method for recording pay later payments and will be same in coming days however #2 will be removed in future.


Links for the DialogFlow extension go to Drupal 404 Page

I've noticed that sometimes in drupal 8 you have to clear drupal cache to get newly added civi menu links to be found.


This seems like it might be your CiviCRM not having a single canonical URL.

CiviCRM form processing requires a canonical URL to be set. If your site is configured to use http://example.org and the visitor lands on http://www.example.org, CiviCRM's form processing will redirect them to the configured base URL part way through the contribution flow and fail (because the user's cookies no longer are supplied).

I can't load the URL you've linked to, but if I start the Join process at the first URL below, I am able to get to PayPal. If I start at the second URL below, I see the "too many redirects" notice you describe.

http://isebiogeochemistry.com/index.php/iseb-membership
http://www.isebiogeochemistry.com/index.php/iseb-membership

Finding your site via Google ("ise biogeo chemistry") leads me to the latter hostname.

To prevent this (mis) behaviour, both the protocol (http vs https) and the hostname (example.org vs www.example.org) must be consistent (ideally, enforced with a redirect from ANY wrong URL to the single "correct" one).

How to configure canonical URLs varies between webserver and CMS, so I won't document that here. You'll find plenty of good existing docs with a search for eg "(your CMS) + canonical URL plugin", or "(your webserver) canonical URL".

Some similar questions on CiviCRM Stack Exchange:

**Network Error - Unable to reach the server
Network Error due to Cross-Origin Request Blocked
Payment options do not display when https used only when http used
"Could not find a valid session key." Unable to save any admin forms


CiviCRM on Joomla: How to allow multiple users to add contcts, etc?

With CiviCRM on Joomla you do need to use the administrator backend for that functionality (unlike on Drupal). The frontend functionality is limited as you've discovered.

You can create a Joomla user group for these CiviCRM users and assign them the ability to login to the Joomla backend, but grant access only to the CiviCRM component. The steps would be something like:

Create a Joomla user group for these users, with group parent "Public" (Users > Groups > Add new group)
Give the group "Special" access (Users > Access levels, click Special) This step in setting up Joomla permissions doesn't make sense to me, but without it users will see an empty Joomla administrator dashboard - it's a bit of a gotcha
In System > Global Configuration, Permission tab: select the CiviCRM group and change "Site login" and "Administrator login" to Allowed
While still in the Permission tab, change from global to the CiviCRM component (select CiviCRM under COMPONENTS on left side) and grant permissions as required to the group (there are a lot of them)
Create users and add them to the group

Now this group will be able to log in to the Joomla backend but will have a limited menu (System, Components > CiviCRM, Help) like you see at http://joomla.demo.civicrm.org/administrator/

These are the basic steps to get you started; you can also look at using CiviCRM roles.


possible bug: when using External ID as matching method, imported contributions can get matched to contacts in the trash--would expect error instead

I suggest you create an issue at https://lab.civicrm.org/dev/core/-/issues
I'd think it should be treated in the same way as if you matched on a contact id that was soft-deleted.
The message you quote appears to be generated from CRM_Contribute_Import_Parser_Contribution::deprecatedFormatParams() but given the name, a quick fix to that function to handle external id is not the answer.


Don't update to 4.7! webform_civicrm module is not compatible with 4.7 (yet).

CORRECTION: Looks like the main issue holding that up functionality w/ 4.7 got fixed last month: https://www.drupal.org/node/2661232

Give us some more details - perhaps a URL to the form - so that we can have a look.

Couple of things to check:

is the CiviCRM contribution page still working? Does it have the correct Payment Processor still attached? That's where webform_civicrm gets the Payment fields from.
By default webform_civicrm will put the $amount total and payment fields on the next page - I'm not 100% sure but I think that may be required for it to load the payment fields.
Having different pages (page breaks) in your webform makes for a nice form. I often go: Parents, Children, Waivers, Payment

Example:


CiviCRM Membership data to external Database

You should always use the API and only if there is no other route grab the SQL table. You do not need to connect to any CiviCRM database when using the API.
You can find more information on the API in the Developer Guide: https://docs.civicrm.org/dev/en/latest/api/

Do I understand correctly that you want to send data to your other application when a membership is created in CiviCRM? If this is the case you should develop a CiviCRM extension using the post hook. You can find more information on developing an extension in the Developer Guide: https://docs.civicrm.org/dev/en/latest/extensions/ and also on the post hook: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_post/.

The post hook will allow you to retrieve all the membership data from the $objectRef object when you catch an $objectName Membership and $op create (or probably edit as well when a membership changes?).

Alternatively you can pull data from CiviCRM using the API if synchronizing every hour/day is enough?


If you select your text and put it into a DIV block and then choose the alignment it should be fine. I have found the the paragraph block does not hold the alignment.

Hope this helps


Civicase . how to copy a timeline or sequence

As far as I know in principle yes. But my experience with CiviCase is mainly CiviCRM 4.4 and before. I do not know where the case type XML files are stored from 4.5 onwards but you should be able to find that in the CiviCRM documentation wiki.


The templates are stored in your CiviCRM database in the table civicrm_mosaico_msg_template. They are not saved as actual files. BTW Im assuming you are using the Mosaico extension?
If you go to CiviCRM->Mailings->Mosiaco Templates you get full options for tweaking existing templates, copying them and so on. See attached image.


DB Error: connect failed when trying to call Job.execute using cli.php?

First, you can view the error with greater detail if you enable "Debug and Backtrace", or view the CiviCRM log.  The troubleshooting documentation will tell you how to do both.

Second, I would assume that "connect failed" is a MySQL error.  Is it possible that you have two civicrm.settings.php files in your path, one with the wrong MySQL password?

Finally - yes, drush and cv are additional tools to install.  However, if you're administering Drupal/CiviCRM through SSH, these tools are amazing timesavers.  Configuring cron with cv or drush is 10 times easier than what you're doing here, even if you factor in the overhead of installing drush or cv.  Drush in particular will give you a number of other command-line superpowers - you'll be glad you installed it.


How can I set up an email discussion list based on CiviCRM groups?

we have deployed this in a couple of situations including making a UI that let's you set the Civi Group, or a Civi Relationship, as the basis for the Mailman group. There is still the issue about what happens when someone unsubs via Mailman, since the Civi synch just puts them back in ;-)

I don't think we were ever able to take it further than a build for that single client ie it didn't not get developed as an extension or even a releasable module. i should check what might be involved in making it able to be shared.


Online registration - fill-in boxes both above and below text

There are a few options to accomplish this depending on your needs.

If you are using a WP shortcode on a page you can have text above and below the registration block. This option allows specific intro text or text after registration form but does not insert text in specific areas of the form.

If you use multiple profiles on the page You can use the pre & post form help entries in the profile settings to add specific text.

Finally in the individual fields there is also the options to add pre & post help. In these fields you can use html tags to format text the way you wish.

Some custom CSS may be necessary to get things the way you like. Hope these options help out.


Going forward, much of the Civi UI will be written in Angular. However at least 95% of the application uses Smarty and it's still a perfectly acceptable way to mark up a form or page.

Depending on your use case you may be able to create an Angular page for what you want.

If you are writing an extension, you can try both. Use civix generate:page or civix generate:form to create traditional smarty-based pages & forms. Or try the newer civix generate:angular-* commands for the alternatives.


Problems adding Contribution form to a WP page

Disable all of your plugins (except CiviCRM) and try it again. If you can now see the Civi options, you have a couple of options: a. Set up your page, reactivate your plugins and go on with life, b. Reactivate the plugins one by one to see which is the issue.

If that does not work:

Switch to a WP basic theme like Twenty Seventeen or Twenty Sixteen and try the page create again. If you can see the Civi options, I would setup the page, switch back to your theme of choice. Just switch to a basic theme when you need to see the options and then back to your theme for usage.

If you do not want to mess with either above,

Under Contributions > Manage Contribution Pages > Select the page you want > Links > Live. This will give you a link that ends in id=#  Below is an example of Civi shortcode. Replace the 2 in the shortcode below with the id# from your live link and paste it to your WP page.
[civicrm component="contribution" id="2" mode="live" hijack="0"]


Have you tried Reports > Contribution Reports > Contribution Summary Report? You can add a column to show the contribution status and you can modify the filter to show whatever status you would like on the report. By setting the grouping options to Contact and Contribution Status and nothing else, you will get a single row totaling contributions by status, and then a total row for the contact, but this will not give you a difference between the two.

Hope this helps!
Tamar


Step 1 - Use a program to make your data consistent.  There are lots of possibilities out there - try OpenRefine (open refine.org).

Step 2 - once consistent, try to assign the contact.id (aka contact id, internal contact id) to a column.  This will remove de-duplication issues

Step 3 - Import

Its really hard to have a script that finds inconsistencies, and they vary so much across data sets: some have all sorts of titles, others have improper address (street vs st vs str), etc.  I find its almost always less time to invest in work before the import instead of counting/hoping on finding duplicates later.


I had about 25 fields I was skipping in the import map. I deleted these fields and it worked like a charm.


Custom Field that is a Foreign key to contact in Custom Group that extends Event is not updated on merge of contacts

This is something not handle in CiviCRM at the moment when two contacts are merged. I am not sure if any one has submitted fix for this issue. You can either fix this by adding code  to update contact_id for all contact reference custom field in core or through hook_civicrm_merge hook via extension.

HTH

Pradeep


What are the Drupal modules most used with CiviCRM?

I am quite curious about why you are asking this question. My advice would be to install only modules when you have functional need and those modules solve them for you.

It might be even that a module which is used often is completely useless in your context. Or that it breaks other needed functionality.

Having said that the masquerade module is very handy one. Same as views and webforms.


When I click your links I can see that the "bad" link returns a 302 redirect - but the "good" link does not.  I would review your CiviCRM log (in ConfigAndLog for an error that appears when someone hits the bad link.


Here's one answer that fixed my problem (see my comment above).  The cause was that when I created the Drupal system I just used the domain name without the www.  But Civi was loaded with www.  This is an old problem and I'm a bit ashamed to admit I made this mistake again!  But if your system has this mismatch then system status won't work.  Fix was to change the base url in Drupal.


Following API call should do it.

$result = civicrm_api3('CustomField', 'create', [
  'custom_group_id' => "GROUP_NAME",
  'label' => "CUSTOM_FIELD_LABEL",
]);

Replace label and group name accordingly.


This seems to be a theming issue that is not necessarily specific to civicrm. can you try a different theme. also update your Question to include your CMS.


Special Characters Become Question Marks "?" in PDF Printing

DOMPDF in CiviCRM have a trouble with special characters UTF-8. We have this same problem in Poland. I've create a repo with solution: https://github.com/ngo360/civicrm.dompdf.utf8

For apply this change go to path: path/to/civicrm/vendor/dompdf and delete all files. Then upload files from repo. I think is resolve Your problem.


Error on updating contact after upgrade to CiviCRM 5.10.3

CiviCRM 5.10.3 is not compatibile with so old PHP 5.64. Maybe here is a problem, look at requirements:

https://docs.civicrm.org/sysadmin/en/latest/requirements/#php


How to fix Undefined index notice in contribution_date_relative?

Aivars,

Have logged an issue for this in CiviCRM here and submitted a PR for this fix. Can you please test by applying patch from here? If it works for you than please add a comment on PR which will help to get this fix in core and have it available in next release.

Cheers

Pradeep


Does Summary Fields extension work on 4.6.x

I use Summary Fields on several 4.6 sites with no issues.  Also - "Jamie" who left the comment is the author of Summary Fields, I'd follow their suggestion!


In your php.ini, what is your max_execution_time? I think the default may be 30 (sec) you may want to increase that.   Also I think at least with Civi 4.7 the install will try to install in the WP database, are you 1) selecting a different database (and user) or 2) using the WP one?  Are ANY tables ending up installed for Civi?


How to create a multiple-record custom field set for a Membership?

We ended up going with option c): create each choir as its own contact, then create custom relationships between the choirs and the organization they're a part of. This in addition to making the choirs themselves easily searchable, this also allows us to create separate relationships between conductors and their individual choirs (since each choir in an organization might have a different conductor).


eWay Payment Processor error 9001 on contribution - help please

This has been fixed. My hosting company migrated my site to another server which could communicate with eWay and it is now working.


We had one site that had 'lost' all it angular pages, eg CiviMail and System Status.

In our case the angular cache files were returning 404 on the New Mailing page. (and 'inspector' was showing a lot of red angular errors)

It was building the cache files in sites/default/files/civicrm/images, but then searching for them in sites/default/files/civicrm/persist/contribute

The issue here was a mismatch between the resource url setting for Image Upload URL and the directory setting for Image Directory. Strangely (!!) these folders are being used for caching of angular files.


Mass mailing Click-Through tracking doesn't include domain in 5.27.3

I've not seen this myself (domain missing) but the base page is missing as well from your link.
I'd review the following:

make sure that the base page is set - go to https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2Fuf&reset=1

Review the Base Page setting and value, it cannot be blank

Make sure there is a published page that matches the one in that page

If there is no value there, add one, civicrm is the default and then create a WP page with that slug

Make sure the page is public and visiuble to all

Once you've done that (or confirmed the base page exists) Visit this page https://example.org/wp-admin/options-permalink.php

Confirm that your permalinkls are set to anything EXCEPT Plain

If it is set to Plain change to one of the other options and save

If it is not set to plain, you can exit the page

Flush CiviCRM Caches go to https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2FupdateConfigBackend&reset=1  and click cleanup caches

After all that is complete, visit a contribution or event page and be sure it displays.   I'd then try a test email.


It sounds like you still have a civicrm.settings.php file. To uninstall you need to delete that too.


How can I create a new type of block in Mosaico?

I believe you can use hook_civicrm_mosaicoBaseTemplates() hook to create your own new mosaico block template definition (alternative to versafix-1).

Documentation on how you can use this hook can be found here.

HTH

Pradeep


User provided ratings of events and directory members

Under Drupal, you could do this with civicrm_entity to link a Drupal entity with your CiviCRM entity.  There's also the abandoned civicrmentity (no underscore) which lets you add Drupal fields directly to a CiviCRM entity without a corresponding Drupal entity.

AFAIK there's no equivalent functionality in Wordpress, so you'll have to find a Civi-native approach.  You may want to get in touch with this person to get the self-service CiviEvent update functionality into core - then you could add a "rating" custom field for participants to fill out after a class.  From there, a simple extension to calculate an average rating on the event would be trivial.

Doing this for contacts is a little trickier natively.  I might try to do it using a new activity type - "created by" would be the user submitting the rating. "With" would be the person being rated.  Again, you'd need an extension to average/count the ratings.


How to create a Drupal View with multiple CiviCRM relationships?

You can use the relationship section of a view for this. A relationship in a view is a relationship between entities don't confuse it with the relationship you have between contacts.

So you could set up a view relationship starting from contact a (the a side of the civicrm relationship), or from contact b (the b side of the civicrm relationship). This a link to the civicrm relationship entity. When you add this relationship to the view you can define which civicrm relationship type.

The next step is to make a view relationship between the civicrm relationship entity and the contact. This relationship is called CiviCRM Contact, the Contact B, or CiviCRM Contact the Contact A.

Then in the fields section of the view you can add fields based on the entity. You can then say for example I want to use display name of Contact B.

If you are familiar with SQL. A view relationship could be described as a join.


Upgrading to CiviCRM 4.63 from 4.4x on current Joomla 3.x

Can u disable the cividiscount module. Seems like that module is responsible for the above error.


Need help upgrading 4.4.5 to 4.7.18 0n Ubuntu 16.04 server with PHP 7 on Drupal 7

Does your VPS let you choose the version of PHP?  If so, downgrade the version of PHP, upgrade CiviCRM, reset the PHP version.

Alternatively you could copy your installation to another server with older PHP, upgrade CiviCRM there and then transfer back to your VPS.

Since you have attempted an upgrade your system may be in a partially upgraded state.  You should start from the database dump and software tree that was backed up before the Ubuntu upgrade.

If you want to copy to another server, be sure to follow the instructions at Moving an Existing Installation to a New Server or Location.  You may want to get some help if those instructions look daunting.


Report of activities with sums on custom fields

I think you can do this with  https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport extension


If they get the email receipts or have the initial email that notifies it is recurring it has the URL.

This is what I see for WP:

https://example.org/?page=CiviCRM&q=civicrm%2Fcontribute%2Fupdatebilling&reset=1&crid=XX&cs=......

crid is the in the civicrm_contribution_recur table

Not sure what CS string is.


How do i get the contribution table entries?

You can use CRM_Contribute_BAO_Contribution::getContributionTokenValues() function to get details of contribution based on contribution id.
To get all data of contribution you can use api
$contributionData = civicrm_api3('Contribution', 'getsingle', ['id' => $contributionId]);


I do not think it is because you have too many custom fields but it might well be that something is not totally right in your data? Ideally you should compare the values in the civicrm_custom_group and civicrm_custom_field tables with the actual data holding tables (in your example civicrm_value_care_init_69) and check if that is all correct.

The error also suggest that there is a constraint, so you probably use a field type of contact entity reference somewhere? And perhaps that is not entirely correctly configured? It is hard to be sure with only the error message to go by :-)


Can I use a catchall address if my mail host doesn't support VERP?

Yes, you can use a catchall mailbox to capture VERP bounces, and CiviCRM will be able to identify VERP data from this.

CiviCRM has two return paths if you enable Reply Tracking, and unless you somehow used separate domains, you won't have two catchall mailboxes. So using a catchall will probably limit your functionality somewhat here.

You could potentially get CiviCRM to poll first for bounces, move unrecognised emails to a "holding" folder in IMAP, then poll that folder for replies on a second pass ... But it is probably easier to just switch to a mail service which supports VERP, since such mailboxes are widely available ... you'd likely save some effort.

See also How does Civimail reply tracking and forwarding work?

Exim can support VERP routing, even if your mail provider may not be willing to provide this.


Getting a DB Error: unknown error when entering and saving phone number

There is a mysql function that is called to save a normalized phone number (stripping spaces and so on). You seem to have a problem as mysql can't load this function

Cannot load from mysql.proc. The table is probably corrupted

This might be several issues and potentially indicating bigger issues, database corruption should be handled seriously.

The indicated fix might work:

mysql_upgrade

Backup the database first. if it doesn't solve the problem, restore it on a different server (or on your laptop) and check if you can get a working civicrm there.


By "internal links" do you mean anchor links? A link that would go to another spot in the email? If this is the case, it might be answered here: How can I set up anchors in Mosaico mailing?


Is there a process to tidy the tables created by logging?

Writing "code" could be as simple as a cron script that runs daily and does mysql -u user -ppassword -e "DELETE FROM log_civicrm_group WHERE log_date < DATE_SUB(NOW(), INTERVAL 2 MONTH)" databasename, which deletes records older than 2 months.

EDIT: To address your comment, if you want to completely disable logging but just for this table, you could drop the associated triggers. This might get turned back on during an upgrade if there's a change to the trigger, but can deal with that then.
e.g.

SHOW TRIGGERS LIKE '%civicrm_group%';
DROP TRIGGER civicrm_group_after_insert;
DROP TRIGGER ...

Repeat and replace civicrm_group_after_insert with the various triggers.


Quick guess. Did you double click the save button?
Or, it's suggesting there's already a "Training Information" Dataset on your system. Maybe for a different entity type e.g activity data not contact data.


How can I run a report with Pending (Incomplete Transaction)?

Pay Later isn't available in reports provided by core civicrm. I added this to extendedreport extension recently - https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport/pull/434
The PR is merged so you can use the latest (or master) version and use contribution details extended report to find the required filter.


What does the error mean when enable honoree in contribute I get an error CiviCRM 4.6.8

This is quite complicated, but as @pkeogan explains above, it all comes down to your profile using a custom field. To see custom fields that are restricted to specific contribution types, go to Administer > Customize Data and Screens > Custom Data. Then you can see the allowed types for each fieldset in the Type column. You need to locate the one that your Honouree profile uses, but which does NOT include your contribution type in the Type column. (If you're unsure, go to Administer > Customize Data and Screens > Profiles, and see for the fields in your profile.) Then, on the page at Administer > Customize Data and Screens > Custom Data, click ”more” on the relevant row, and then ”Settings”. There, see for the label ”Used For” to choose the types you need.

To understand this better, read the pages Creating Custom Fields and Profiles in the CiviCRM documentation.


How can I set a Membership to Next Year?

Yes - in Membership Types you can set membership type plan to be fixed, and then set the Start Day and also set the Rollover day

  Membership signups on or after this date cover the following calendar year as well. Example: If the rollover day is November 30, membership period for signups during December will cover the following year.


What is the public flag for on custom Field sets?

From https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/#is-this-custom-field-set-public

  Is this Custom Field Set public?
  If a custom field set is marked as public, its fields will be shown on public-facing pages.

  For example, custom fields that should be shown on an event information page should belong to a field set marked as public. Custom fields that relate to administrative information about an event should be part of a field set that is not be marked as public.

  Note that the setting is at the Custom Field Set level and applies to all Custom Fields in the Set. Individual fields cannot be marked as public or not.


How can I hide contact tabs depending on user role?

We often find that for most Drupal users who don't really 'need' access to civicrm, it is less painful for them to 'access' the data they should be able to get to via a Drupal View (which can be set with Role-based permissions). If you are not familiar with Drupal Views for Civi Contacts or CiviMemberships you may find something in our 'treasure trove' aka Views Library


Change the default fields (columns) in contact search results

There is a non-code fix for this:

You could make a profile with the fields you want to display.

And then you search using Advanced Search, and you could select that profile in the "display result as".

Edit:
As pointed out by Philipp Michael in the comments below, you could also choose a certain profile as the default one, in the admin settings ( at /civicrm/admin/setting/search?reset=1.)


If you use the address standardization functionality with the USPS, it will return all addresses in upper case. This likely isn't your problem as you state the data appears in title, but I think it's worth flagging for those with similar issues.


Error during event registration linked to GDPR extension

Its just the warning (Notice), either you can turn off php warnings for wordpress or update the GDPR Communications Preferences settings(http://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/gdpr/comms-prefs/settings&reset=1) and choose something (eg Do Nothing) for 'Add to Event and Contribution Thank-you pages' option under 'Event & Contribution thank you page' section.

HTH

Pradeep


Add Contact Suffix to Quicksearch Results

At Administer - Customize - Display Preferences, near the bottom there is "Individual Sort Name Format". If you change it to {contact.last_name}{, contact.individual_suffix}{, }{contact.first_name} then NEW and UPDATED contacts will start to appear in quicksearch as desired. The only thing is that existing contacts who haven't been re-saved will still appear the old way. If you only have a few then just go edit and re-save them.


Braintree with Wordpress not working with CiviEvent

Figured it out. For some reason, the braintree keys were not being loaded at the time before it started to post to Braintree. In Braintree.php I added the following

 if (empty(Braintree_Configuration::environment())) {
  $environment = ($this->_mode == "test" ? 'sandbox' : 'production');
  Braintree_Configuration::environment($environment);
}

if (empty(Braintree_Configuration::merchantId())) {
  Braintree_Configuration::merchantId($this->_paymentProcessor["user_name"]);
}

if (empty(Braintree_Configuration::publicKey())) {
  Braintree_Configuration::publicKey($this->_paymentProcessor["password"]);
}

if (empty(Braintree_Configuration::privateKey())) {
  Braintree_Configuration::privateKey($this->_paymentProcessor["signature"]);
}

Right before the following:

try {
  $result = Braintree_Transaction::sale($requestArray);
} catch (Exception $e) {
  return self::error("Oops! Looks like there was problem. Payment Response: " . $e->getMessage());
}

And it worked. I'm not entirely sure why the values weren't being loaded initially but this will do!


WordPress Redirect Loop with CiviContribute

I solved the problem by using Ramesh's suggestion as a starting point. Instead of introducing hard coded Thank you & Cancel pages I stored the permalink address of the WordPress page along the other invoice stuff during the creation of the payment in Paytrail extension:

public function doTransferCheckout(&$params, $component) {
  $paymentHelper = new PaytrailPaymentHelper();

  // For now works only with WordPress & permalinks
  if (function_exists('get_permalink') && $contributionPageCmsUrl = get_permalink()) {
    $params['contributionPageCmsUrl'] = $contributionPageCmsUrl;
  }
  //Save payment info for PaytrailIPN.php to retrieve
  $paymentHelper->insertInvoiceInfo($params, $component);

It's utilized in the IPN following way:

  static function main() {
    ...
    $invoiceData = self::readInvoiceData($invoiceID);
    $contributionPageCmsUrl = $invoiceData['contributionPageCmsUrl'] ?: '';
    ...
    if ($contributionPageCmsUrl) {
      $queryParams = array_merge(array(
        'page' => 'CiviCRM',
        'q' => $finalUrlAction,
      ), $finalUrlParams);
      $glue = strpos($contributionPageCmsUrl, '?') === FALSE ? '?' : '&';
      $finalUrl = $contributionPageCmsUrl . $glue . http_build_query($queryParams, null, '&');
      CRM_Utils_System::redirect($finalUrl);
    }
    else {
      CRM_Utils_System::redirect(CRM_Utils_System::url($finalUrlAction, $finalUrlParams, true, null, false, true));
    }
}

I guess there should be more logic for handling different situations and upgrade hook implemented. This behaviour could be made also optional and support for Joomla and Drupal introduced (if needed), but now it solves the problem for the client.

BTW, double title on the contribution WordPress page should be eliminated. Is the display:none way to go?


Eileen McNaughton wrote:

  It's possible you have FULL_GROUP_BY mode enabled in mysql & that is
  causing problems - the log file should be
  /var/www/vietfeir.com/public_html/wp-content/uploads/civicrm/ConfigAndLog/CiviCRM.4a976861044aadd15e2c85b9.log
  (or similar) and have more error details – eileen 16 hours ago

I removed the ONLY_FULL_GROUP_BY mode and the problem was solved. Thanks, Eileen.


Custom options on CiviEvent registration forms to handle breakout session choices

I've tried a bunch of approaches, and price sets are definitely the best approach here.

Create a "Select" price set for each group of concurrent sessions (e.g. "Workshop Session 1", "Workshop Session 2", etc.).
This also allows you to charge different amounts for different sessions, if some incur an additional cost.
The price set options selected will be stored on the participant record as "Fee Level", and can be easily searched/displayed.


Mailchimp and CiviCRM: possible integration using custom contact fields?

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 associate drupal content types with civicrm new group?

You may also want to look at Organic Groups, which you can also sync with civicrm, so a contact in a civicrm group is a member of an Organic Group, or vice versa. Then you can use OG as containers for your content. Probably not worth it if you only have a few pages of information.


Welcome to SE, You can set contact type mandatory by using hook_civicrm_buildForm something like below

function extension_civicrm_buildForm($formName, &$form) {
  if ('CRM_Contact_Form_Contact' == $formName
    && !($form->getVar('_action') & CRM_Core_Action::DELETE)
  ) {
    $form->addRule('contact_sub_type',  ts('This field is required.'), 'required');
  }
}

HTH

Pradeep


Smart Group dropping search criteria on save

Had a test site upgraded to 5.10.0 today, and the smart groups settings (for case contacts- see comment above) are now working as expected.


Use CiviCampaign to send emails to a target?

You can use CiviRules extension to get that is required. You can setup triggers, conditions and actions using this extension.

A detailed documentation has been compiled by them which can be found here.

Hope this helps.


How to update multiple records with API?

You can use chaining:

civicrm_api3('Contact', 'get', array(
  'return' => 'id', // more efficient since you don't care about the get results
  ... other search params ...
  'api.Contact.create' => array('last_name' => 'Something'),
));

The 'id' will be set for you automatically by the chaining. For more about chaining see this post.

Also remember the 'gotcha' that unless you specify otherwise, this will only fetch & update 25 records.


Best practice for finishing a CiviCRM session? Close browser window? log out? does it matter?

The server doesn't know that you closed your browser, so it considers that you are still looking at the last page; for a very long time.

The vast majority of users doesn't log out to explicitly inform the server they are out.Your drupal/webserver is going to discard stalled sessions when they stay inactive for too long, so it doesn't have an impact to logout or let the server "auto logout" after a while.

They are tiny differences if you close the browser while editing, as Civi might warn other users that you might still be editing to prevent conflicts (when two users edit the same content at the same time, you might overwrite each other modifications), so here, properly logout -or cancel your edit before closing- does help avoiding that other users wonder if you are still editing it or not.

There might be small security concerns to leave your session open, but assuming your civicrm installation is using httpS (and if not, you really should ssl encrypt your websites), it's not an issue either.

So in a nutshell: it's slightly better to logout, but as it means you will have to login more regularly, you might end up using less Civi -yeah, we are that lazy- I wouldn't advocate to logout, unless you aren't using your regular computer.

If you aren't the only one using the computer, you should always logout (so the next one using it won't be able to access Civi with your account).

X+


How can I detect whether a form is being filled in via the admin pages, rather than via the front-end?

I'd recommend you ignore the form name/class entirely and display the message based on whether the user has an admin-type role. Then you don't care how the lookup gets invoked, you just show it to administrators, and it's tied to the service lookup rather than the way it got triggered.


Link to Directly View Default List of Contacts (Drupal)

There is no navigation that sends you to a 'list' of contacts. First you need to be clear on what that 'list' would show. Is it just the list that you get from going to Advanced Search and clicking on 'search' which is same as clicking in Quick Search and hitting 'enter/return' on your keyboard. If you don't want to build a View then perhaps make a Profile, add the fields you want in it, and set them to 'searchable' - but of course that all begs the question of 'what do you want people to be able to do once they see this list' which is something you haven't mentioned.


Adding custom roles to Case "Add role" function

In CiviCRM versions 4.5 and above, you can add case roles by navigating to Administer -> CiviCase -> Case Types and clicking "Add Role"

Note that roles and relationships are not precisely the same. A case client can have any relationships, but within the case, only the roles you have defined will be available.


I want to Coordinate civiCRM mailing list and SimpleNews Mailing list

There are a couple of workarounds that may help you.

Civimail offers a 'public' page version of the mailing. not the same thing but not sure if you knew that or not. When you set up a Mailing you have the option of setting its visibility to public, and then there are Drupal permissions to determine what roles can access this.

Also there is an extension developed by Fuzion here that lets you put a Views token in a mailing, so you can

create your newsletter stuff in drupal
create a views display for this content
put token in civimail


4.7 Utils/Mail.php doesn't check if CC/BCC are null but should

Solution: replace current lines in Utils/Mail.php where no check for null CC, BCC is made, with the following (line 194 +) from older version of Mail.php:

if (CRM_Utils_Array::value('cc', $params) != NULL){
  $headers['Cc'] = CRM_Utils_Array::value('cc', $params);
}
if (CRM_Utils_Array::value('bcc', $params) != NULL){
  $headers['Bcc'] = CRM_Utils_Array::value('bcc', $params);
}

I don't know why the code was changed to not check for null. It seems it doesn't hurt to check, and if null CC/BCC are put into headers, mail() fails.


Changing default text on Thank You Screen

Try Word replacement (more like sentence replacement) in your case. Here is a how to:

https://www.cividesk.com/blog/did-you-know-any-word-or-phrase-civicrm-can-be-replaced-another-one


How to add multiple individual in civicrm profile fields section in civicrm contribution page?

Unfortunately this cannot be achieved with CiviCRM profiles.
CiviCRM only offers an option to sign up as an individual or on behalf of an organisation.
A household cannot be linked via a contribution page.

You best option with WordPress would be to attempt building a form using CiviCRM caldera forms - https://github.com/mecachisenros/caldera-forms-civicrm


Extension settings lost on upgrade - known issue?

I have not experienced this yet @twomice. I tend to use Civi::settings()->set as well in my upgrader and/or config file in my extension too, perhaps that might help?


It's found in civicrm.settings.php and will be generated by the installer (or set manually depending on how your CiviCRM instance was configured).  You're looking for a line that looks like this:
define( 'CIVICRM_SITE_KEY', "your.site.key.is.here");


You can certainly do what you suggest and change the household name to Smith, Tony & Michelle or you could change it to Tony & Michelle Smith.

There are pros and cons for each.

Try it out on your test site, or on one of the demo sites for two different households and pay attention to the form of the Addressee and mail and postal greetings in each case.

Also try searching for the households using both quick and advanced search.

You will have to decide which format for the household name suits your particular system best.


Fatal Error when accessing Civi in WP Install

Unfortunately, the log message suggests you've hit a limit of your hosting provider.

  User snachodo_657 already has more than 'max_user_connections'

This could have various causes. If your hosting plan only allows a certain number of DB connections simultaneously and your site creates more than that, you'd see this.

I don't think it's a common issue for CiviCRM so it may be that the hosting provider has a low number of permitted DB connections, OR that your site is busier than most sites on your hosting provider.

It's worth noting that CiviCRM's DB connection methodology does not re-use Wordpress's DB connection, so for any visitor on a CiviCRM page, your site will consume two DB connections at once.

In the first case, I'd contact your hosting provider and enquire about the limit. It might be a config tweak they can make, or they may offer you a plan with more DB connections.

If that doesn't work out, you could ask an expert to investigate why your site is making too many connections, or look into hosting providers who provide support for CiviCRM sites.

Hope that's some help!


Did you know - WordPress plugin SEO Ultimate's open Graph Integrator causes a warning?

This is a bug in the SEO Ultimate plugin. You should report that they are incorrectly calling:

apply_filters( 'single_post_title', $post->post_title )

in three places:

modules/opengraph/opengraph.php (line 116)
modules/titles/titles.php (line 179)
modules/titles/titles.php (line 184)

The call should read:

apply_filters( 'single_post_title', $post->post_title, $post ).

Their support page is here:
https://wordpress.org/support/plugin/seo-ultimate


Where can I find Documentation for Drupal 8 Webform CiviCRM module?

Yes! Official documentation is being created and can be found here:
https://docs.civicrm.org/webform-civicrm


Unfortunately not.  Hopefully you have a backup of your database, and ideally a test site?  If you load the backup on your test site, you should be able to search for people with the tag, select Export, and export only the Contact ID.  Import the Contact ID list to your live site, and on the last page of the import, select Create a New Tag.  You can enter the tag's name there.  The import won't do anything other than create the tag, since it's only contact IDs.


In Drupal under Configuration > Development > Logging and Errors ie admin/config/development/logging you can set Errors and warnings to be 'off' and it is normal to do so on the production site, while leaving them showing on the development version.

The reason you don't see this on 'edit' but do on 'create' is, as you say, because Edit uses the overlay, but if you were to right click on the button instead and open in a new tab then I would expect the error is showing.

This doesn't answer your 'how do we fix it' but might explain how to avoid the error showing to users.


Backbone JS error with 4.6.4 on WP messing up contribution page set up

On closer investigation, and with thanks to @coleman for referring me to the troubleshooting guide, I have successfully identified the culprit as the JetPack WP plug-in. With it de-activated, my contribution page set-up works without a hitch.


its not dead! We are in the process of migrating it to a new physical platform, which we're hoping to complete this week.


CiviEvent: missing are Total Fees, Payment Method

Ann - the symptoms you describe here all point to an issue with JavaScript not being loaded properly.

General recipe for trouble shooting this is to check your Browser's console for Error messages: in Firefox - you could do this by installing Firebug plug-in on Chrome you can launch the Developer Tools.

Here's an excellent write-up on troubleshooting JavaScript errors by one of the core team member's: https://forum.civicrm.org/index.php?topic=35850.0


Can't access custom fields used in event registration

I'm working on this with @zoog and can confirm that the autocomplete only works when 'CiviCRM Backend and API' permission is granted to anonymous.
However changing it to an ordinary select works without this permission.
Seems independent of 'access AJAX API' which remains granted.
What do you think @petednz-fuzion - have you got autocomplete work for anonymous?


"No records of type '' found" error - shortcode in WordPress page to edit profile

Doh! Not sure if this is what others found, but I'm ashamed to say the error message:

  "No records of type '' found."

is shown when none of the fields in the Custom Data set are set to "Display in table" (!)


Installing CiviCRM - best security practices

Generally when evaluating security, you need to balance likelihood and severity of threats against the resources available to counter them. A human rights organization that was a client of mine had information on activists in their CiviCRM instance who could be imprisoned or killed by their governments, with sophisticated, well-resourced governments interested in getting that contact information: high threat, high consequences. In that kind of a context it might make sense to avoid exposing your CiviCRM system to the public web. Another client of ours, Nader for President 2008, also used an instance of CiviCRM hosted on a hardened server that was not exposed on the web, using custom software to migrate relevant contact information into CiviCRM.

For the last several years, the supported and generally available releases of CiviCRM require a CMS to be installed on the same server to manage user accounts and permissions.

In your case, I would recommend putting CiviCRM and Joomla! on the same VPS/server, and keeping your Joomla! software up to date with all security upgrades/patches. Follow the Joomla security best practices listed at https://docs.joomla.org/Security_Checklist. A more in-depth practical guide developed for Drupal but containing many generic sections can be found at http://openconcept.ca/drupal-security-best-practices-practical-guide.


500 Errors on CiviCRM 5.1.2 with Varnish on WordPress

You can certainly try to set up rules to bypass the reverse proxy, but at the same time, I think it will be more cost-effective to change hosting.  Varnish problems aren't going to be the only issue you have when you have managed hosting that is specially tuned for WordPress hosting.

CiviCRM and WordPress work nicely together because they rely on the same LAMP stack and it's valuable to have your CRM and website tightly integrated.  However, from another perspective, a CRM and a website have opposite performance needs.  A website needs to serve the same few dozen pages to thousands of visitors.  A CRM needs to pull from among thousands of contacts' information for a handful of users.

Managed WordPress hosting (whether through Dreamhost, WP Engine, or others) attempts to maximize website performance by caching as much as possible so that the most commonly-visited pages can be delivered whole without querying the database.  This tilts the process completely towards the handful of content, lots of visitors use case for a website.

For a CRM, there's the issue you're facing where you have to tell the reverse proxy to skip various pages and widgets that are driven by CiviCRM.  But when you fix that, at least for certain pages you've defeated the performance tricks that you're paying your host to implement.

The entire business model of this kind of hosting is to rely on these tools to get maximum performance out of minimal hardware.  Without the caching, you're just left with cheap hosting.  That's not going to serve you well as you try to use CiviCRM.

Your better bet is to host with something a little more substantial.  What my colleagues and I have recommended for years is a virtual private server (VPS or cloud server) with at least 4GB of RAM and a dual-core processor.  You can get these for around $20 per month at Linode, AWS, DigitalOcean, and elsewhere.  They require setting up the whole LAMP stack, but that's something lots of us who support CiviCRM can do.

Once you've done this, you'll have better performance, a stack that is more broadly supported and used, and the ability to set up a practically unlimited number of development sites, extra domains, and so forth.


How can I allow non-admin users to manage tags?

This is a bug already reported at  https://issues.civicrm.org/jira/browse/CRM-15371.

Managing tags needs its own permission rather than requiring "administer CiviCRM" permission. Anyone interested in getting started on core programming will likely find this a good one to begin with.


Fatal error: Uncaught CRM_Core_Exception: Found installation canary

@Mike
The name of your XAMPP installer suggests that you are testing with PHP 7. That is bleeding edge technology for CiviCrm. According to CRM-17789 thats supported for the first time in CiviCrm version 4.7.12. Maybe you can retry your installation using PHP 5.6.


Send welcome message at signup date, not membership 'start date'

When a membership is created there is both a 'join date' (member since) and a 'start date'

You should be able to set up a scheduled reminder to be triggered based on the 'join date' and you should get what you need.


While Stripe can accept payments in ZAR, they are currently unable to payout in that currency. Thus, they effectively cannot support operations entirely in ZAR.


Webforms - 'existing contact' does not auto complete

ON the webform, the component that is the 'existing contact' has a 'permissions' check box - you need to use this to override the controls  but note, this is what prevents your database being searchable by the public, so you may be disclosing information that you don't mean to (thx JonG for better wording)


Example of adding multi-record custom fields to a contact via API

To clarify this scenario: you must be talking about muti-record contact custom data and not contribution custom data (which only supports single-records currently).

I recommend you use hook_civicrm_postProcess to insert code to store the data on form submission. This code inside your implementation of the hook should use the CustomValue API to save the data. You'll find documentation and examples of how to use it in the API explorer.


Wordpress Civi install keeps puking with "canary" and simplexml_load_file() error

It turned out that PHP did not have simplexml_load_file()  installed.  I ran

apt-get install php7.0-simplexml

Restarted apache and hosed the install in /plugins as well as its database, started over and now it has installed.


How can I change a CiviEvent status using Webform Conditionals?

What you are attempting to do should already be handled by the module automatically. Simply omit the status field from the form (leave it set to "Automatic" on the CiviCRM tab of your webform) and the status will be set based on the payment status to either "Registered" or "Pending from pay later" or "Pending from incomplete transaction".

You can see where this is handled by webform-civicrm here in the code.


It sounds like your process of importing memberships via CSV and contributions via CSV works - except that your contributions and memberships aren't linked.

If that's correct, I've resolved this when doing migrations as follows:

Create a custom field for contributions called "external serial" or similar.
Create a custom field for memberships also called "external serial".
Add a serial number column to your CSV (if one doesn't already exist) before importing it as contributions/memberships.  The only important part is that each row have a unique identifier.
After import, you can use the shared identifier to create a new CSV with just two columns - membership_id and contribution_id (as CiviCRM assigned them).  I typically would do this via SQL.  Something like this:

SELECT cc.id AS contribution_id, cm.id AS membership_id
FROM civicrm_contribution cc
JOIN civicrm_value_importfieldcc_1 cvi1 ON cc.id = cvi1.entity_id
JOIN civicrm_value_importfieldcm_2 cvi2 ON cvi1.external_serial_1 = cvi2.external_serial_2
JOIN civicrm_membership cm ON cvi2.entity_id = cm.id

Create membership payments using this new CSV to link the memberships/contributions.  You can do that with the API CSV Import GUI extension or the command-line tool that ships with CiviCRM.


You can use the tabset hook (detailed information can be found on the wiki here: https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_tabset) to add a contact tab.


Go to :

  Administer -> System Settings -> Import/Export Mappings

There you can find all existing mappings and you can delete unwanted mappings there.

Check below link for more details :

https://wiki.civicrm.org/confluence/display/CRMDOC/Import-Export+Mappings


Donation/Contribution Page Best Practices

After going back and forth from CiviCRM forms to Drupal Webforms for contribution forms, I find that the way to go for Contribution pages is CiviCRM forms.

A couple of issues that come to mind with Drupal webforms as a contribution form was:
1) The payment instrument was always set to "Check" even though they pay with Credit Card.
2) The Contribution thank you letters weren't sending out automatically.


two reasons I can think of:
- civicrm website was overloaded or down for a short maintenance operation
- your server or network connection prevents your site to connect to civicrm

if it's the former, wait a bit an retry, everything should be back to normal

to test if it's the later, try to connect to the site from the command line (if you have ssh access to your server) and run curl https://civicrm.org. if you have an error message, it should point you to the right direction

(we did change something about the TLS/SSL protocol accepted but don't recall if it was the main site or not). In any case, it would probably mean you have very old software on your server and you should upgrade your OS


Is there an area in CiviCRM (or a way) for people involved in a case to communicate privately?

You can add BuddyPress in and with the additional BuddyPress CiviCRM plugins it will sync users.  Think Facebook and you've got the idea.  You can make things private or not, do PM's, do groups, etc.


Where to change details on payment processor?

If you want the exact filename of the text, you can simply grep inside the civicrm directory -

$ grep -rl "If you have a PayPal account" templates/
templates/CRM/Financial/Form/PaypalPro.tpl

Which gives the result of this file. You need to either -

Change the Continue text and create a PR to get it accepted into core.
Override this file into an extension. (Not recommended based on Coleman's explanation on the link.)
Write a simple js in an ext and change the text of the paypal msg or the Contribute button.


Managing & reporting Loans or Microloans to org from individuals?

You can add Custom Contribution fields (on a per 'Contribution Type' if necessary) hence if you need fields that show Interest Rate etc you can do this via the UI.

I am unclear if you need the user_unique_id since the civi 'internal id' might do the required. Ditto for 'creation date' etc as these might be data that core civicrm handles anyway.


how to manage documentation of past events (add files, links, summary, etc)

You can create custom data/fields for Events and can attached the documentation.

Custom fields for events

Attach the files when you configure events

Download documentation from Event info page


Update addressee values for all contacts after modifying Addressee Type Options

Use the update_greeting scheduled job.

Go to Administer > System Settings > Scheduled Jobs
Click Add New Scheduled Job, and enter the following values.

"Name": "Force Update Addressee Values"
"Description": (blank)
"Run frequency": "Every time cron job is run"
"API call": select "Job", and enter "update_greeting" in the text field
"Command parameters":

ct=Individual,Household,Organization
gt=addressee
force=1

"Scheduled Run Date": (blank)
Uncheck "Is this Scheduled Job active?"

(This is important because you don't want your scheduled job to run automatically.)

Click Save.
Find your scheduled job in the list of all jobs, and click More > Execute Now
Find your scheduled job in the list of all jobs, and click View Job Log. Verify that you see "Success" in the log. Troubleshoot any errors.


Best way to integrate two sites with different security levels

Naomi, CiviProxy at the moment deals with mailings and stuff, and whitelists API calls. So if you would want to create a donation page on your public website, you would probably use the API to send data to CiviCRM.

When using CiviProxy your public website would send the API request to CiviProxy. CiviProxy would then check if the API request is allowed, and if so pass it on to CiviCRM.

If you want to build forms that communicate with CiviCRM on a separate server you might also want to take a look at CMRF.

There is a blogpost on a recent sprint about this topic you might want to read.


I have imported memberships, need memberships to count as contributions

Do a .csv import of new Contributions of financial type Member Dues, Civi ID, contribution amount, contribution date for each, then export that list with Internal Contact ID, and create a list of new or updated (a separate import for each) Memberships to import.


Case activities are not shown in activity tab but appear in the filter

In the Activity tab for a contact, case activities are not shown. I would rather they were...

Me too! And After a lengthy process I've had this PR 1630 merged into core, should be released in 5.24 I think.

It adds an option (Administer » CiviCase » CiviCase Settings) that, if checked, will include case activities in the activities tab (and other activities listings that they were previously hidden from).

I felt that not having these exposed in the normal way led to some really strange situations - like if a case activity is assigned to me, I would not be able to see it from my record at all. You may want to read my rationale for why this option made sense.


Try setting your preferred timezone in civicrm.settings.php and/or wp-config.php?

ini_set('date.timezone', 'Asia/Calcutta');

You might want to adapt the timezone you set as appropriate to your MySQL server.

mysql -e 'SELECT @@system_time_zone;'

I believe India does not observe daylight savings? For that and similar reasons it's probably better to match the timezones in both systems. If MySQL is set to UTC offset, use that for PHP, and if MySQL is set to a regional timezone, follow suit.


One of the steps we did in Civi was to set our Available Countries. This does not allow user registrations unless they are from within one of the countries on the list. Most of the spammers are operating in specific countries, so if you are not needing the whole world to have access to your forms, then you can do this to block out a large % of these guys.
Admin>Localization>Languages,currency,locations then scroll down to Available Countries and add the one(s) that matter to the approved list
Joomla might have something similar as well that you can add there.


Exports in 4.7.6 are not working correctly

This is a bug and will be updated in the next release. In the meantime, you can use this PR to fix.

Further info on Jira.


If you want to track fulfilled premiums by type, fulfillment date and next eligible date without tracking inventory and expense within Civi, you can do so through the use of custom data fields designated for use with contacts and a profile that can be displayed as an additional tab of a contact record. To facilitate reporting, I would suggest using a select input field type for premiums and a date input field type for the date fields.

If you want to track fulfilled premiums awarded with a $0 contribution, the only way I can think of doing this is to create premiums for internal use only with a $0 minimum donation amount that can then be added to a contribution page for internal use only, use the built-in fee section in the amounts tab and include a $0 option, then masquerade as the user to whom the premium is being awarded and then create a $0 contribution with the selected premium.

You might also want to play around with subscription/service premium to see if that would help with managing eligibility for the next premium, include a custom data field for next eligible date, or perhaps make use of a specific membership type to do so.

Hope this helps!
Tamar


Contact individual Summary Print page Image not showing

I don't think you're looking at the right template.  When I press Print Summary, that's not the template that loads.

You can check which template is in use by pressing "Ctrl-U" to View HTML Source, then searching for ".tpl".  When I do that, I see templates/CRM/Contact/Page/View/Print.tpl instead.

Above the {literal} tag, I added the {debug} tag and reloaded the page in my browser.  This brought up a Smarty debug window; I confirmed that $imageURL is indeed available to this template (otherwise we'd need to add it in the corresponding PHP file).

So hopefully this is enough info to get you where you need!  Update your question if not.


Relationship Permissions as ACLs don't work

When the above extensions are enabled, on any Relationship Type you should now see a new field saying Always Permission A to B (and vv). And at civicrm/admin/setting/misc?reset=1 you should see an option for 'Allow second-degree relationship permissions'.

I have added above to the extension page and will ask it be added to the readme if that helps.


As far as I know, that token doesn't exist, in core or in an extension.  It's not a bad idea though; it would be quick to write.  As with most tokens that list multiple fields, the real trick is in formatting.  Some will want them in a particular order; some want them comma-separated vs. each on their own line, etc.


Will there be a LTS release of CiviCRM 4.6.x that supports PHP 7+

This kind of question is hard to answer for an open source project like CiviCRM :-) There is no 'owner' of the product that can tell you this. Nor is there a group of paid developers that will be able to continue supporting this. Considering that I think it is an impossible question to answer, and the wrong one to ask at this point in time. It would have to be one of the considerations when starting with heavy customization.

Having said that, I have worked in closed source situations where this kind of thing was promised by sales manager but never materialised :-). "No we will continue to support this version as long as you want to use it" and then a year later "we really urge you to upgrade as we will no longer support this version".

As an individual and member of the CiviCRM community I would not be interested in keeping a 4.6 version alive in combination with PHP 7. It would probably mean changing the 4.6 to a new PHP 7 compliant subversion, and then keeping it alive. That would leave me hardly any space for making a living. But that is solely as an individual with none of the organizations I work with facing this problem. It is only my personal opinion, it does not mean it is not possible or will never happen.

If there is a large group interested in doing this however you might be able to fund it. Or find partners that are willing to take this on. So I would really urge others to answer your question too!


From your description it sounds like a custom field with specific options (either a select field, checkbox or radio button). If you go to Administer>Custom Data and Screens>Custom Fields, find the field group and field then click Edit Multiple Choice options. See if the option for "active" is marked as default. Edit the option and uncheck the default option.

Hope this helps.


Change count in Custom Tab with table according to filtered data

I assume you used a tabset hook to adapt the tab on the contact page. That is where you can influence the count as you can see here:
  $tabs[] = [
    'id' => "mediweattestbeheer",
    'url' => CRM_Utils_System::url("civicrm/mediweattestbeheer/page/mediweattest", "reset=1&mid=" . $contactId, TRUE),
    'title' => "Attesten",
    'weight' => 16,
    'count' => CRM_Mediweattestbeheer_BAO_MediweAttest::telAttestenMedewerker($contactId),
    'class' => "livePage",
  ];

For the count parameter I have used a function that counts the number of records in the table for the specific contact.


What are the implications of changing the SITE_KEY?

Change all cron jobs and scripts that use the site key for authentication
Reenter any passwords, specifically payment processors and mail/sms passwords
All prior checksums sent in the last 7 days (if that value has not been changed), will no longer work

A grep for SITE_KEY in the code base will uncover a few more things :)


Bulk merge creating multiple address (and email) records of same location type

The address aspect of this has recently been raised as a bug here:
https://issues.civicrm.org/jira/browse/CRM-18455

And has been patched as part of:
https://issues.civicrm.org/jira/browse/CRM-18338

As for the rest of the merging logic - where it creates many email addresses (phone numbers, and other 'location blocks') of the same type, I agree this doesn't seem desirable; but deciding which phone/email to keep isn't always straightforward. The current logic is:

When force merging if there are any conflicts the 'main' record takes precedence, otherwise any information from the 'other' record is added to it. Ie: all emails would be added. If there were two addresses of the same type then the 'main' one would stay on the record.

I also posed this question on the civicrm-dev mailing list as to whether this is the desired behavior and I've created a follow-up thread on the forum: https://forum.civicrm.org/index.php?topic=37165

Please feel free to get involved =] It would be great to improve this tool and have it working as desired - once we know what 'as desired' looks like.


CiviMobile: Can't log into CiviCRM using CiviMobile

There could be few reasons:
1. Please check the correct extension is installed. You need to install CiviMobileAPI extension (https://civicrm.org/extensions/civimobileapi), not CiviMobile. You can find installation steps here https://civimobile.agiliway.com/#how-to-start.

What CMS do you use?

If you use Drupal or Joomla then there should be no problem. Please check that you specify proper URL paying attention to http/https and www or without www.
if you use WP then there is a bug in core CiviCRM API which prevents API works correctly. Please start reading here for more details https://github.com/civicrm/civicrm-core/pull/12813#issuecomment-428152827
As an immediate solution, we are preparing API fix patch WP clients. It will include our quick fix and instruction how to install in.
Please write us at civicrm@agiliway.com IF you use WP.

If it still does not work then please write us (civicrm@agiliway.com) so we can investigate the problem.

Thank you,
 Sergiy


The current version produces a "Update your browser!" message - which is not helpful since I already have the latest, and that is not the problem.

Mosaico itself (not just the CiviCRM integration) is picky about the plugins you have installed in your browser.

See https://github.com/voidlabs/mosaico/issues/383#issuecomment-428911320 and https://github.com/voidlabs/mosaico/issues/312#issuecomment-295278878

  You have the RightToClick extension installed and this extension
  manipulates HTML content. Doing so it would break the email template
  generation. That's why we give that alert.

  Any extension that alters html for every iframe in the page is an
  incompatible extension: AFAIK apart RTC extension, the only other
  extensions doing that are spam stuff.

So paraphrasing, if they don't like the look of your plugins you are blocked.

Go through your plugins and disable them until you find which one is causing the problem.

In my case, it was the Google Analytics Opt-out Add-on - disable that and it passes the compatibility test.


Disable select fields in a drupal webform

When you are on the page for editing the form component, you can change the widget from select options to a textfield. Then the option to disable becomes available.

However, it will display the value of the select, not the label - for example I tried with Name Prefix and for "Dr" it put "4".

But if you are dealing with custom fields where you can set the values to be the same as the labels that shouldn't be a problem.

Where it might cause a problem is activity status - could you get away without showing that?


Is it possible to get point-in-time membership data?

Since the status is based upon the start and end date and changes with the cron job, can you just leave the status off and select the date range.  Anyone who had a start date before the date in question and an end date after that date should have been a member on that date.

So...
Select custom date range for start.
For From leave blank (the beginning of time).
For To: put the date in question.

Select custom date range for end.
For From put the date in question plus one day.
For To: leave blank.


How do I display a list of civicrm events on a separate wordpress site?

The Drupal Views + RSS feed solution sounds reasonable to me! There's lots of great support for generating RSS feeds in Drupal and we've had some good successes with that methodology.


Where does the PID value come from in the event self-cancellation link?

I believe PID is the participant ID registered of an event. This is the primary id from civicrm_participant table.

HTH

Pradeep


How to get job.execute to run with drush

It looks like you are using an incorrect version of php when this command runs from cron. According to this resource you are receiving these errors because you are using php-cgi rather than the php CLI binary. Most reports of this error are regarding 1 & 1 hosting.

Rather than using /usr/bin/drush use something like this:

  /usr/bin/php /usr/local/bin/drush {rest of the command}

Where /usr/bin/php is the path to the php CLI binary on your system.


If you have feedback about the civicrm.org site itself, you can give that feedback by one of a few routes:
* You can submit a JIRA issue on the "INFRA" project, rather than the "CRM" project, which tracks the software itself.
* You can raise the issue on https://chat.civicrm.org, in the "infrastructure" channel.

If the issues you're raising are due to UX issues in CiviCRM itself, you can submit those via JIRA.  That said - given that resources for any project are limited, simply submitting an issue to JIRA is unlikely to move it forward very far.  It's better to submit an issue than not to though!


Event Management - notify participant on receiption of payment or on cancellation

You can do this in one of the two ways

When you edit a participant you get an option to send confirmation email. Ticking the checkbox and saving the form will send email to contact.

Other option is to send reminder for particular participant status. Navigate to Administer >> Communications >> Schedule Reminders. On Add reminder form select entity as either Event Name or Event type and then select Event Name/Event Type and then Participant status with other fields.

  Note: Make sure Schedule reminder schedule job is enabled if you
  sending it via schedule reminder. But i would prefer to use method 1
  as it is most convenient and easy.

HTH

Pradeep


Default PDF Page Formats aren't respected after upgrade to 4.5.8

I did try creating an example against http://wp45.demo.civicrm.org/ - It worked fine.
Even I have worked in previous version (4.4). I haven’t got any issue at all.
So, please try setting the table width = 100% - this should work correctly.

Example: from Demo (used message template: “Sample CivicMail Newsletter Template”).

Had a table setting like below
table bgcolor="#ffffff" cellpadding="0" cellspacing="0" width="612"

Just change the above line to
table bgcolor="#ffffff" cellpadding="0" cellspacing="0" width="100%"

This gave me a correct output – with proper margin – I guess this Helps!!!


Is it possible to change the Mailing label format?

Go to Administer - Localization - Address Settings, and the mailing label format is there for you to edit.  You can move, add, and remove tokes as needed.

(For reference, Administer - Communications - Label Formats handles the formatting of label size and arrangement on the sheet.)


Multiple contact entries created for WordPress users if they login with non-primary email addresses

The issue outlined in the question and comments doesn't exist in the latest version of CiviCRM.  Penny mentions that the issues results because "When a Wordpress User is deleted, the WP User ID is not deleted from that contact's CiviCRM contact record".

I tested that this is no longer the case by creating a WordPress user, running SELECT * from civicrm_uf_match to find the corresponding entry in that table, then deleting the WordPress user.  When I re-ran the SQL statement, I saw that the civicrm_uf_match entry was gone.


Merge all duplicate contacts (running version 3.4.6)

One Option: The easiest way I have found (in 4.6.4) is to export like you said, with contact ID, do your manipulation in excel to pull out the records you would like to keep, and re-import the records into a group, choosing 'update' when you do so.

If you need to merge information, you could put it on the line with the contact ID you will be keeping.

Then you can grab all of the contacts in your group (or all contacts not in your group, depending on which way you selected) and delete them.

To export these contacts, search for all, select all, and choose 'action>export'.

The import tool can be found under 'contacts>import contacts'.

One thing I have found on our setup is if I import a large dataset (say, more than 10k records at a time) I will get a timeout and the import will stop with 'db error', which is frustrating, so I usually break these up into smaller sheets to import.

Another Option: I believe you can do this programmatically with the API if you are more comfortable doing that. I haven't used this approach though so I don't know how well it works.

Possibly related: Batch merge automation of big data set


Cannot edit links (or source code directly) in Scheduled Reminders

OK, I'm going to be bold and answer my own question. According to https://civicrm.org/extensions/tinymce, starting with CiviCRM 4.7, an internal editor CKEditor was provided to handle all Civi backend editing. Since we started using Civi prior to that, we had the TinyMCE extension installed and I should have been aware to disable TinyMCE in favor of the default CKEditor at that time.

I'm interested if anyone else has anything to add. At the very least this post does note an evident TinyMCE bug with our Wordpress/CiviCRM versions configuration.


DB Error: unknown error (Tablespace is missing for table .civicrm_setting)

The relevant underlying error is hidden in that long message:

  ** Tablespace is missing for table ieditims.civicrm_setting.

I am no expert in database administration but it seems this might be related to a corrupted or missing file of your database system.

If your dev system doesn't have very specific civicrm settings, I would try to delete the table civicrm_setting in an admin tool like phpmyadmin and recreate it afterwards.
For CiviCRM 4.7.10 the SQL query to create the table would be

  CREATE TABLE IF NOT EXISTS civicrm_setting (
    id int(10) unsigned NOT NULL AUTO_INCREMENT,
    name varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Unique name for setting',
    value text COLLATE utf8_unicode_ci COMMENT 'data associated with this group / name combo',
    domain_id int(10) unsigned NOT NULL COMMENT 'Which Domain is this menu item for',
    contact_id int(10) unsigned DEFAULT NULL COMMENT 'FK to Contact ID if the setting is localized to a contact',
    is_domain tinyint(4) DEFAULT NULL COMMENT 'Is this setting a contact specific or site wide setting?',
    component_id int(10) unsigned DEFAULT NULL COMMENT 'Component that this menu item belongs to',
    created_date datetime DEFAULT NULL COMMENT 'When was the setting created',
    created_id int(10) unsigned DEFAULT NULL COMMENT 'FK to civicrm_contact, who created this setting',
    PRIMARY KEY (id),
    UNIQUE KEY index_domain_contact_name (domain_id,contact_id,name),
    KEY FK_civicrm_setting_domain_id (domain_id),
    KEY FK_civicrm_setting_contact_id (contact_id),
    KEY FK_civicrm_setting_component_id (component_id),
    KEY FK_civicrm_setting_created_id (created_id)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


Limit is ignored in civicrm_api3('Membership', 'get')

You need to use options.limit to make this work.

  options.limit : The maximum number of records to return. You can make this unlimited by setting the value to 0.

Usage

$result = civicrm_api3('Membership', 'get', array(
  'membership_type_id' => "$level",
  'options' => array('limit' => 1000),
));

Get more details on the different parameters you can use under options.

Also check : How do I get more than 25 records from the API?


Add extra field to group contact - relation

If i understand correctly, in your example, you have 2 organizations contact called "Group 1" and "Group 2" and one individual contact called "User 1".

In that case, I can think of several way of doing what you want :

create different relationship type "Chairman", "Secretary", ... and use the proper relationship between the contacts. This way, you will see in the tab Relationship all the information you need
Have one type of relationship (e.g. Employee) and add the function in the description. The description is visible in the Relationship tab so it will give you a quick way to see the function but it is less obvious in a user experience point of view that description = function
Create a custom field "Function" on the Relationship type that you want. The drawback is that your custom field won't be visible from the Relationship tab without clicking on the "View" link for a particuliar relationship.


Is it possible send a gif image correctly without breaking it?

Did you find an answer to your question? It seems that the platform does not accept the .gif format.

Admin support and I figured it out... kinda:

It works if you use the "traditional" email. The Mosaico version
seems to strip the gifs away.
If I view the resulting email through
our standard email reader, it moves. If I view it through outlook,
it does not.

Conclusion - Even if you get the gif to upload and go
    out properly, it doesn't work on all email readers and therefore is
    not a good solution for your email.


Group Membership Discounts using Group Based pricing

You can use webform_civicrm module - but it will be quite some config!

Something like:

add a Drupal field - how many members would you like to sign up?
make as as many contacts in the civicrm tab as you need (you may need to bump up a parameter in webform_civicrm code) - you can make one (add all the fields you want) then in the webform tab -> clone
use conditionals to show the correct number of contacts
make sure you have relationship to primary contact (something like Member sign-up by)
make sure your membership type filters down to inherit by relationship
the monies... will be the default $ in your Membership Type config - however - you can add your own contribution field in webform and use conditionals (or jQuery to get the grand total $ right - based on the # of members field the user selected

Good luck setting that up! Please do report back!


How do I format a webform to register for events so I can fill it out multiple times without cancelling previous registrations?

Found the solution, it is a setting that was there all along.

On the CiviCRM configuration page under the Event Registration tab there is a section called Registration options. In here there is a checkbox to "Disable unregistering participants from unselected events" if you check that then as it says contacts will not get unregistered from events.

Doesn't show them what they are currently registered for but we are ok with that as they are not going to lose the registration.


Can cv handle custom Wordpress installs?

Thanks to the helpful comments, I conclude: Yes it can, with a bit of help.

TL;DR

you need to define CIVICRM_CMSDIR in your code
you need set CIVICRM_SETTINGS as an environment var

Longer version

As far as I can work out, cv sources civicrm.settings.php before it sources wp-config.php. So if, like me, you have config set in civicrm.settings.php that depends on constants defined in wp-config.php you'll have to find a solution for that (e.g. use if (defined('...')) or put them all in a separate file and require_once(...) it.)

Then you need something like this in your civicrm.settings.php:

define('CIVICRM_CMSDIR', __DIR__ . '/wp');

Basically CiviCRM is going to expect to find wp-includes inside that directory, so adjust as you need to.

You don't need to call cv from within any particular directory, according to my tests.

You need to set the environment variable CIVICRM_SETTINGS to point to the civicrm.settings.php file. This can be a relative or absolute path.

I was then able to get cv to run, e.g. to use the API. Now if only I could get my tests to run....!


Where can our small non-profit find assistance with CiviCRM?

Best place to look for a CiviCRM Partner/Contributor is here: https://civicrm.org/partners-contributors - there are many Partners/Contributors in the US - even if you can't locate one in Michigan - with today's tools like GoToMeeting so much can be done online;


According to this page, the most common reason for your error is that your server only accepts STARTTLS connections on port 143.

If this is your situation, then you can either connect over SSL on port 993 if your server allows it, or you can connect using STARTTLS.  Note that there are some caveats to connecting over TLS:  See here and here.


Why does the sender not receive a bulk emailing they originate?

I haven't found the cause, but I've found a fix that seems to work.
If I call up Edit on a contact and then Save it, even without making any changes, I am able to send that contact bulk email. I cannot be sure, but I suspect that the defective contact records were ones that were imported via CSV from another platform with an older CiviCRM release.
Yes, this seems mysterious and it doesn't exactly increase my confidence in CiviCRM. On the other hand, I'm a release or two behind on WordPress and CiviCRM, so maybe it's already been fixed.
So all I have to do now is Edit/Save all 1024 (coincidentally, I think, 2**10) contacts in my database. Perhaps I'll make this a group project for my organization! B-)


Registering for Event without Email Validation

I set the LoginToboggan non-verified role to 'authenticated user'.

It is possible to set a permission for an 'authenticated user' but not a user with a specific role.


Unless William has addressed your "Bank Transfer" question, and you actually mean you want users to pay by entering their bank details, often known as ACH transfer.

You will need a merchant that allows that, an example post on this: https://civicrm.org/blogs/adixon/iats-next-generation-payment-processor-acheft

The link William provided indicate IATS and Vanco offer ACH,


Connecting Civi to a previous install's database

You should edit the civicrm.settings.php file.  The location of this file depends on your content management system.

Drupal: sites/default/civicrm.settings.php

WordPress: wp-content/uploads/civicrm/civicrm.settings.php

Joomla: administrator/components/com_civicrm/civicrm.settings.php

You may find this related post helpful: How do I change the CiviCRM Database name


CiviContribute & Paypal Business Account

You should setup Paypal in CiviCRM (via Admin > System Settings > Payment Processor ie at path civicrm/admin/paymentProcessor?reset=1) and then use Contribution pages with the paypal payment provider.


Participant records have a status field, and one of the standard statuses is Attended, so yes. And you can search for participants with a certain status and reports can include the status.

See also https://docs.civicrm.org/user/en/latest/events/keeping-track-of-events-and-participants/#changing-event-registration-selections-for-an-existing-participant

and

https://docs.civicrm.org/user/en/latest/events/reports/#event-and-participant-reports


What is the significance of event_queue_id in civicrm_mailing_event_delivered table?

It is a foreign key to the civicrm_mailing_event_queue table. It is in lockstep since all your emails are being delivered etc and thence the two tables are in sync. However there is no guarantee of this and you cannot rely on it, hence the need of the foreign key.


Amending relationship types has broken civi case

Check the name_a_b and/or name_b_a fields in the database table civicrm_relationship_type. Check that they match the <name> entries in the <CaseRoles> section in the xml files in <path_to_civicrm>/templates/CRM/Case/xml/configuration. Depending on your version or upgrade history the xml definition might be in the civicrm_case_type table in the definition field.


Installing and Setting wkhtmltopdf Path In Civicrm

Download the compiled binaries for your system from http://wkhtmltopdf.org/downloads.html to your server and extract to somewhere convenient.  The files need to be readable by the account running the webserver.  Then go to Administer >> System Settings >> Misc and enter the path to the wkhtmltopdf.


Where does Civi store membership and membership signup info?

Best thing to do is to do a complete dump of your old database and import it into a fresh database on your new server. Then use that for your new Civi install. Importing piece by piece creates problems because there is too much data that is reliant on other tables.


Multiple automatic discounts for memberships

I was able to reproduce the issue using the discount code configuration you provide in your screenshots and it appears that it has been reported to the developers of CiviDiscount here. So, bottom line is, your codes are set up correctly, but currently only one autodiscount can be applied per contribution or event page.
You may wish to offer funding in the same thread listed above if resolution of this issue is of high priority to you.
Hope this helps,
Tamar


Can I use CiviCRM group as mailing list - or sync with Mailman?

Check that extension https://github.com/fuzionnz/mailman_sync that does sync a group and a mailing list

If you were to prefer sympa than mailman, there is another extension that does the same there https://github.com/civicrm/org.civicrm.sympasync


How delete billing address fields on contributing page?

As Christia points out, online credit card processing requires an address, so you can't get rid of them.

If your goal is to simplify as much as possible that form, your best strategy would be to not include any profile fields, and then the form would just include the built-in billing fields.

If you do find a payment processor that will work without address fields somehow, then in theory a plugin could be written that would replace those billing fields with different ones. Who knows? It might not be long until you can just put in a mobile phone number instead and it'll look up your information somewhere ...


What is the recommended level of PHP for CiviCRM? There seems to be some inconsistencies

CiviCRM PHP requirements recommends PHP5.5 or greater, and notes PHP5.3.10 is the bare minimum required. As well as this, you want to be sure your PHP version is actively getting security updates, and also consider what PHP versions CiviCRM is tested with.
As of Feb 2016, I recommend PHP5.6 -

Support ended for PHP5.3 in 2014, and for 5.4 in 2015.
PHP 5.5 is getting only security fixes until mid 2016.
PHP 5.6 is actively supported until Dec 2017, with security fixes until Dec 2019.
CiviCRM doesn't run on PHP7 yet ... (CRM-17789: Support PHP7).

NB: Distributions may backport security fixes for older versions after those dates; please do your own diligence on whether your PHP version is secure :)


Fatal error: Uncaught CRM_Core_Exception: Civi/Core/InstallationCanary.php on line 53

The answer above about deleting the civicrm_install_canary table and the civicrm folder in uploads almost worked for me, except that php timed out ~30 seconds after the green 'successful installation' message appeared. I tweaked max_execution_time in php.ini to 360, deactivated CiviCRM, re-deleted the table and folder, then reactivated and re-installed - this time it finished gracefully and opened CiviCRM.

I am installing CiviCRM on a testing server (running on my laptop), which is a little slower than most working servers, but is configured to show errors one might not otherwise see.  The cleanup and/or 'reset' process that runs after the 'successful installation' message appears to take so much time that it is likely timing out even on some working servers, which results in not finishing the process and leaving the canary table in place.


Help for developing an extension for SMS

You might want to start with https://docs.civicrm.org/dev/en/latest/ if you haven't seen that before. To try out API functions, I would encourage you to login to a civi instance and go to the menu beside Administer, ie Support  > Developer > APIv3 (or preferrably APIv4 if it has what you want), then test things there. The same functionality is available on your iwn instance. Note especially the callback methods available under https://docs.civicrm.org/dev/en/latest/hooks/
There are CiviCRM logs available at sites/default/files/civicrm/ConfigAndLog/ but you may also need to look at your Apache and occasionally MySQL logs too. Welcome, and good luck.