Formidable Form
-
Hi,
how translate this cubepoints code to mycred.add_filter(‘frm_after_create_entry’, ‘after_entry_created’, 30, 2);
function after_entry_created($entry_id, $form_id){
if($form_id == 2){
// Cubepoints Support
if( function_exists(‘cp_alterPoints’) && is_user_logged_in() ){
cp_alterPoints(cp_currentUser(), 10);
/** Form Submit Points Log Hook */
cp_log(‘Task Form Completed’, cp_currentUser(), 10, RGForms);
}
}
}Thanks
-
here you go:
add_filter( 'frm_after_create_entry', 'after_entry_created', 30, 2 ); function after_entry_created( $entry_id, $form_id ) { if ( ! function_exists( 'mycred_add' ) ) return $entry_id; if ( $form_id == 2 && is_user_logged_in() ) { mycred_add( 'form_submission', // Reference get_current_user_id(), // User to gain points 10, // Amount of points to gain 'Points for form submission' // Log entry ); } return $entry_id; }You can find more information about the mycred_add function in our online codex.
hi thank you very much it’s work fine.
and how can I make the points vary depending on the number I enter in a field?
You would need to contact the plugin author and ask how you can get your form field values though the frm_after_create_entry filter that we are using. You could probably get it though $_POST[‘form_field_name’] but I do not the plugin you are using.
gabriel, hi again,
the plugin I’m using is formidable (http://ww.wp.xz.cn/plugins/formidable/)–
the Field Options (ID 143)
Field Type – Number
Field Key – kdl8ew
–
I wanted to enter the number (1, 2, 3, etc..) multiply by the number of points.
this code above don’t work.can you help me?????????????????
_add_action( ‘frm_after_create_entry’, ‘mycred_charge_for_form_submission’, 30, 2 );
function mycred_charge_for_form_submission( $entry_id, $form_id ) {
// Start by making sure myCRED is enabled
if ( ! function_exists( ‘mycred_add’ ) ) return;// Apply to a specific form only (with ID 1)
if ( $form_id == 2 && isset( $_POST[143] ) ) {// First you would need to define in your form
// how much to give or take for submitting this form
$pack = $_POST[143];// If you do not want to charge or add points, you could
// set this value to zero.
if ( $pack == 0 ) return;// Next get the user ID. If the user is not logged in
// myCRED will going to be able to award points
$user_id = get_current_user_id();
if ( $user_id == 0 ) return;// If the value is positive add points
if ( $pack > 0 )
mycred_add(
‘form_submission’, // required reference
$user_id, // the user to give poitns to
$pack, // amount
$pack*15, // log entry
$form_id // save the form id
);
}
}Well the above code, will add points equal to the value of $_POST[143] to the current user.
This assuming that:
1. myCRED is enabled.
2. The form ID is 2.
3. $_POST[143] exists
4. The $_POST[143] value is not zero.
5. The current user is logged in.
6. The $_POST[143] value is higher then zero.So if it is not working you will need to check each of the above exceptions to see where the fault is:
1. Is the form ID really 2?
2. Does $_POST[143] exists?
3. Is the $_POST[143] value higher then zero?
4. Are you logged in while submitting the form?Furthermore, while your code awards the amount set under the $pack variable, the log entry will be $pack*15. So if $pack is 1, your log entry will be: “15”.
As I mentioned before, I do not know this plugin so I assume that the filter fires correctly when you submit but I suspect that there is no $_POST[143] but maybe $_POST[‘kdl8ew’]?
I can not figure out.
The form is 2 the post is [143] or [‘kdl8ew’], the value not zero and higher then zero, and i’m loggedis possible to do this with the contact form 7?? can i help me?
There are different ways one can test a code snippet to see where the issue is.
I would for example change your code to the following:
add_action( 'frm_after_create_entry', 'mycred_charge_for_form_submission', 30, 2 ); function mycred_charge_for_form_submission( $entry_id, $form_id ) { // Start by making sure myCRED is enabled if ( ! function_exists( 'mycred_add' ) ) { echo 'MYCRED COULD NOT BE LOADED'; return; } // Apply to a specific form only (with ID 2) if ( $form_id == 2 && isset( $_POST[143] ) ) { // Form Key $pack = (int) $_POST[143]; // If pack is lower or equal to zero, bail if ( $pack <= 0 ) { echo 'PACK IS ZERO OR LOWER'; return; } // If user is not logged in, bail $user_id = get_current_user_id(); if ( $user_id == 0 ) { echo 'USER LOGGED OUT'; return; } mycred_add( 'form_submission', // required reference $user_id, // the user to give poitns to $pack, // amount $pack*15, // log entry $form_id // save the form id ); } else { echo 'FORM OR FIELD IS NOT SET!'; } }And then submit a form. The above version would then echo what the issue is
the message that appears is:
FORM OR FIELD IS NOT SET!Then you know what the issue is. The Forum ID is not 2 or the $_POST[143] is not set.
Hi Gabriel,
The ID is 2 and the $POST is 143, but lacking [‘item_meta’][143].$_POST[‘item_meta’][143]
Thank you for help mesorry gabriel,
how the get_the_author_meta( ‘ID’ ) not working here?add_filter( 'frm_after_create_entry', 'after_entry_created1', 30, 2 ); function after_entry_created1( $entry_id, $form_id ) { if ( ! function_exists( 'mycred_add' ) ) return $entry_id; if ( $form_id == 9 && is_user_logged_in() ) { $author = get_the_author_meta( 'ID' ); mycred_add( 'form_submission', // Reference $author, // User to gain points 100, // Amount of points to gain 'Points for form submission' // Log entry ); } return $entry_id; }Using the get_the_author_meta function will return the form author and not the sender also, this must be used inside the loop! This is a question for the form plugin author as I do not know this plugin.
The topic ‘Formidable Form’ is closed to new replies.