: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'submit' )
->update_setting( 'label', esc_html__( 'Purchase', 'ninja-forms' ) )
->update_setting( 'order', 1000 )
->update_setting( 'key', 'submit' )
$action = Ninja_Forms()->form( $form_id )->action()->get();
$action->update_setting( 'label', esc_html__( 'Success Message', 'ninja-forms' ) )
->update_setting( 'type', 'successmessage' )
->update_setting( 'message', '<div style="border: 2px solid green; padding: 10px; color: green;">' . esc_html__( 'You purchased ', 'ninja-forms' ) .
'{field:' . $product_field_id . '}' . esc_html__( ' product(s) for ', 'ninja-forms' ) . '${field:total}' . '.' . '</div>' )
public function form_product_3()
$form = Ninja_Forms()->form()->get();
$form->update_setting( 'title', esc_html__( 'Product Form (Multiple Products)', 'ninja-forms' ) );
$form->update_setting( 'default_label_pos', 'above' );
$form->update_setting( 'hide_successfully_completed_form', 1 );
$form_id = $form->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'product' )
->update_setting( 'label', esc_html__( 'Product A', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'product_price', 10.10 )
->update_setting( 'product_use_quantity', 0 )
->update_setting( 'order', 1 )
->update_setting( 'key', 'product_a' )
$product_field_A_id = $field->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'quantity' )
->update_setting( 'label', esc_html__( 'Quantity for Product A', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'product_assignment', $product_field_A_id )
->update_setting( 'default', 1 )
->update_setting( 'num_min', 1 )
->update_setting( 'num_max', NULL )
->update_setting( 'num_step', 1 )
->update_setting( 'order', 2 )
->update_setting( 'key', 'qauntity_for_product_a' )
$quantity_field_A_id = $field->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'product' )
->update_setting( 'label', esc_html__( 'Product B', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'product_price', 9.23 )
->update_setting( 'product_use_quantity', 0 )
->update_setting( 'order', 3 )
->update_setting( 'key', 'product_b' )
$product_field_B_id = $field->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'quantity' )
->update_setting( 'label', esc_html__( 'Quantity for Product B', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'product_assignment', $product_field_B_id )
->update_setting( 'default', 1 )
->update_setting( 'num_min', 1 )
->update_setting( 'num_max', NULL )
->update_setting( 'num_step', 1 )
->update_setting( 'order', 4 )
->update_setting( 'key', 'quantity_for_product_b' )
$quantity_field_B_id = $field->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'shipping' )
->update_setting( 'label', esc_html__( 'Shipping', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'shipping_cost', 2.00 )
->update_setting( 'order', 998 )
->update_setting( 'key', 'shipping' )
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'total' )
->update_setting( 'label', esc_html__( 'Total', 'ninja-forms' ) )
->update_setting( 'label_pos', 'above' )
->update_setting( 'key', 'total' )
->update_setting( 'order', 999 )
->update_setting( 'key', 'total' )
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'submit' )
->update_setting( 'label', esc_html__( 'Purchase', 'ninja-forms' ) )
->update_setting( 'order', 1000 )
->update_setting( 'key', 'submit' )
$action = Ninja_Forms()->form( $form_id )->action()->get();
$action->update_setting( 'label', esc_html__( 'Success Message', 'ninja-forms' ) )
->update_setting( 'type', 'successmessage' )
->update_setting( 'message', '<div style="border: 2px solid green; padding: 10px; color: green;">' . esc_html__( 'You purchased ', 'ninja-forms' ) .
'{field:' . $quantity_field_A_id . '}' . esc_html__( 'of Product A and ', 'ninja-forms' ) . '{field:' . $quantity_field_B_id . '}' .
esc_html__( 'of Product B for $', 'ninja-forms' ) . '{field:total}.</div>' )
public function form_calc_form()
$form = Ninja_Forms()->form()->get();
$form->update_setting( 'title', esc_html__( 'Form with Calculations', 'ninja-forms' ) );
$form->update_setting( 'default_label_pos', 'above' );
$form->update_setting( 'calculations', array(
'name' => esc_html__( 'My First Calculation', 'ninja-forms' ),
'name' => esc_html__( 'My Second Calculation', 'ninja-forms' ),
$form_id = $form->get_id();
$field = Ninja_Forms()->form( $form_id )->field()->get();
$field->update_setting( 'type', 'submit' )
->update_setting( 'label', esc_html__( 'Purchase', 'ninja-forms' ) )
->update_setting( 'order', 1000 )
->update_setting( 'key', 'submit' )
$action = Ninja_Forms()->form( $form_id )->action()->get();
$action->update_setting( 'label', esc_html__( 'Success Message', 'ninja-forms' ) )
->update_setting( 'type', 'successmessage' )
->update_setting( 'message', esc_html__( 'Calculations are returned with the AJAX response ( response -> data -> calcs', 'ninja-forms' ) )
private function _migrate()
$migrations = new NF_Database_Migrations();
$migrations->nuke(TRUE, TRUE);
$posts = get_posts('post_type=nf_sub&numberposts=-1');
foreach ($posts as $post) {
wp_delete_post($post->ID, TRUE);
} // END CLASS NF_Database_MockData