name = esc_html__( 'Info Bar', 'charitable' );
$this->type = 'info-bar';
$this->icon = 'fa-list-ul';
$this->order = 150;
// Edit/Duplication information.
$this->can_be_edited = true;
$this->can_be_deleted = true;
$this->can_be_duplicated = true;
$this->edit_label = 'Edit Info Bar';
$this->edit_type = 'info-bar';
$this->edit_section = 'standard';
// Misc.
$this->tooltip = '';
// Define additional field properties.
add_action( 'charitable_frontend_js', [ $this, 'frontend_js' ] );
}
/**
* Social Sharing options panel inside the builder.
*
* @since 1.8.0
*
* @param array $field ProgressBar settings.
*/
public function field_options( $field ) {
/*
* Basic field options.
*/
// Options open markup.
}
/**
* Social Sharing preview inside the builder.
*
* @since 1.8.0
*
* @param array $field_data Field data and settings.
* @param array $campaign_data Campaign data and settings.
* @param array $field_id Field ID.
* @param string $theme Template data.
*/
public function field_preview( $field_data = false, $campaign_data = false, $field_id = false, $theme = '' ) {
echo '
' . esc_html( $this->name ) . '
';
echo '';
}
/**
* The display on the campaign front-end.
*
* @since 1.8.0
*
* @param array $field Campaign Title settings.
* @param array $field_data Field Data.
* @param array $campaign_data Campaign data and settings.
*/
public function field_display( $field, $field_data = false, $campaign_data = false ) {
$campaign = isset( $campaign_data['id'] ) && 0 !== intval( $campaign_data['id'] ) ? charitable_get_campaign( $campaign_data['id'] ) : false;
if ( ! $campaign ) {
return;
}
$show_donors = ! empty( $field_data['show_donors'] ) && 'show' === ( $field_data['show_donors'] ) ? true : false;
$show_donation_total = ! empty( $field_data['show_donation_total'] ) && 'show' === ( $field_data['show_donation_total'] ) ? true : false;
$css_class = ! empty( $field_data['css_class'] ) ? ' class="' . esc_html( $field_data['css_class'] ) . '" ' : '';
ob_start();
?>
>
get_donation_summary() ); ?>
' . esc_html( $campaign->get_donor_count() ) . ''
);
?>
type . '_field_display', $html, $campaign_data ) );
}
/**
* The display on the form settings backend when the user clicks on the field/block.
*
* @since 1.8.0
*
* @param array $field Social Sharing settings.
* @param array $campaign_data Campaign data and settings.
*/
public function settings_display( $field_id = false, $campaign_data = false ) {
if ( ! class_exists( 'Charitable_Builder_Form_Fields' ) ) {
return;
}
$charitable_builder_form_fields = new Charitable_Builder_Form_Fields();
$settings = isset( $campaign_data['fields'][ $field_id ] ) ? $campaign_data['fields'][ $field_id ] : false;
ob_start();
?>
name ); ?> (ID: )
type . '_settings_display_start', $field_id, $campaign_data ); ?>
generate_checkbox( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
isset( $settings['show_donors'] ) ? $settings['show_donors'] : false,
esc_html__( 'Show Donors', 'charitable' ),
array(
'id' => 'field_' . esc_attr( $this->type ) . '_show_donors' . '_' . intval( $field_id ), // phpcs:ignore
'name' => array( '_fields', intval( $field_id ), 'show_donors' ),
'checked_value' => 'show',
'field_id' => $field_id, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'tooltip' => $this->tooltip, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
)
);
echo $charitable_builder_form_fields->generate_checkbox( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
isset( $settings['show_donation_total'] ) ? $settings['show_donation_total'] : false,
esc_html__( 'Show Donation Total', 'charitable' ),
array(
'id' => 'field_' . esc_attr( $this->type ) . '_show_donation_total' . '_' . intval( $field_id ), // phpcs:ignore
'name' => array( '_fields', intval( $field_id ), 'show_donation_total' ),
'checked_value' => 'show',
'field_id' => $field_id, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'value' => 'show',
'tooltip' => $this->tooltip, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
)
);
/* CSS CLASS */
echo $charitable_builder_form_fields->generate_text( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
isset( $settings['css_class'] ) ? $settings['css_class'] : false,
esc_html__( 'CSS Class', 'charitable' ),
array(
'id' => 'field_' . esc_attr( $this->type ) . '_css_class' . '_' . intval( $field_id ),
'name' => array( '_fields', intval( $field_id ), 'css_class' ),
'field_id' => intval( $field_id ),
'tooltip' => esc_html__( 'Add CSS classes (seperated by a space) for this field to customize it\'s appearance in your theme.', 'charitable' ),
)
);
?>
type . '_settings_display_end', $field_id, $campaign_data ); ?>