<?php add_action( 'admin_init', 'theme_options_init' ); add_action( 'admin_menu', 'theme_options_add_page' ); /* Init plugin options to white list our options */ function theme_options_init(){ register_setting( 'sample_options', 'cOptn' ); } /* Load up the menu page */ function theme_options_add_page() { add_theme_page( __( 'Theme Options', 'sampletheme' ), __( 'Quick Links', 'sampletheme' ), 'edit_theme_options', 'theme_options', 'theme_options_do_page' ); } /* Create the options page */ function theme_options_do_page() { if ( ! isset( $_REQUEST['settings-updated'] ) ) $_REQUEST['settings-updated'] = false; ?> <form method="post" action="options.php" > <?php settings_fields( 'sample_options' ); ?> <?php $options = get_option( 'cOptn' ); ?> <table class="form-table"> <tr valign="top"><th scope="row"><?php _e( 'Website Logo', 'sampletheme' ); ?></th> <td> <img src="<?php echo esc_textarea( is_array($options) ? ($options['logo'] ?? '') : '' ); ?>" alt="No File Found" class="logourlshow" style="font-size: 20px;font-weight: 900;border: 3px solid white;padding: 20px;height:200px;"></br></br> <input id="cOptn[logo]" class="large-text logourl" type="hidden" name="cOptn[logo]" value="<?php echo esc_textarea( is_array($options) ? ($options['logo'] ?? '') : '' ); ?>"> <input id="upload_logo_button" class="button" type="button" value="Upload Image" /> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Footer Logo', 'sampletheme' ); ?></th> <td> <img src="<?php echo esc_textarea( is_array($options) ? ($options['flogo'] ?? '') : '' ); ?>" alt="No File Found" class="flogourlshow" style="font-size: 20px;font-weight: 900;border: 3px solid white;padding: 20px;height:200px;"></br></br> <input id="cOptn[flogo]" class="large-text flogourl" type="hidden" name="cOptn[flogo]" value="<?php echo esc_textarea( is_array($options) ? ($options['flogo'] ?? '') : '' ); ?>"> <input id="upload_flogo_button" class="button" type="button" value="Upload Image" /> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Footer Logo', 'sampletheme' ); ?></th> <td> <img src="<?php echo esc_textarea( is_array($options) ? ($options['fimage'] ?? '') : '' ); ?>" alt="No File Found" class="fimageurlshow" style="font-size: 20px;font-weight: 900;border: 3px solid white;padding: 20px;height:200px;"></br></br> <input id="cOptn[fimage]" class="large-text fimageurl" type="hidden" name="cOptn[fimage]" value="<?php echo esc_textarea( is_array($options) ? ($options['fimage'] ?? '') : '' ); ?>"> <input id="upload_fimage_button" class="button" type="button" value="Upload Image" /> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'License Number', 'sampletheme' ); ?></th> <td> <input id="cOptn[lnum]" class="large-text" type="text" name="cOptn[lnum]" value="<?php echo esc_textarea( is_array($options) ? ($options['lnum'] ?? '') : '' ); ?>"> <label class="description" for="cOptn[lnum]"><?php _e( 'Please Enter License Number', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'License Number 2', 'sampletheme' ); ?></th> <td> <input id="cOptn[lnum2]" class="large-text" type="text" name="cOptn[lnum2]" value="<?php echo esc_textarea( is_array($options) ? ($options['lnum2'] ?? '') : '' ); ?>"> <label class="description" for="cOptn[lnum2]"><?php _e( 'Please Enter License Number 2', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'License Number 3', 'sampletheme' ); ?></th> <td> <input id="cOptn[lnum3]" class="large-text" type="text" name="cOptn[lnum3]" value="<?php echo esc_textarea( $options['lnum3'] ); ?>"> <label class="description" for="cOptn[lnum3]"><?php _e( 'Please Enter License Number 3', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Facebook', 'sampletheme' ); ?></th> <td> <input id="cOptn[facebook]" class="large-text" type="text" name="cOptn[facebook]" value="<?php echo esc_textarea( $options['facebook'] ); ?>"> <label class="description" for="cOptn[facebook]"><?php _e( 'Please Enter Facebook URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Instagram', 'sampletheme' ); ?></th> <td> <input id="cOptn[instagram]" class="large-text" type="text" name="cOptn[instagram]" value="<?php echo esc_textarea( is_array($options) ? ($options['instagram'] ?? '') : '' ); ?>"> <label class="description" for="cOptn[instagram]"><?php _e( 'Please Enter Instagram URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'YouTube', 'sampletheme' ); ?></th> <td> <input id="cOptn[youtube]" class="large-text" type="text" name="cOptn[youtube]" value="<?php echo esc_textarea( $options['youtube'] ); ?>"> <label class="description" for="cOptn[youtube]"><?php _e( 'Please Enter YouTube URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Twitter', 'sampletheme' ); ?></th> <td> <input id="cOptn[twitter]" class="large-text" type="text" name="cOptn[twitter]" value="<?php echo esc_textarea( $options['twitter'] ); ?>"> <label class="description" for="cOptn[twitter]"><?php _e( 'Please Enter Twitter URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'TikTok', 'sampletheme' ); ?></th> <td> <input id="cOptn[tiktok]" class="large-text" type="text" name="cOptn[tiktok]" value="<?php echo esc_textarea( $options['tiktok'] ); ?>"> <label class="description" for="cOptn[tiktok]"><?php _e( 'Please Enter TikTok URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Pinterest', 'sampletheme' ); ?></th> <td> <input id="cOptn[pinterest]" class="large-text" type="text" name="cOptn[pinterest]" value="<?php echo esc_textarea( $options['pinterest'] ); ?>"> <label class="description" for="cOptn[pinterest]"><?php _e( 'Please Enter Pinterest URL', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'LinkedIn', 'sampletheme' ); ?></th> <td> <input id="cOptn[linkedin]" class="large-text" type="text" name="cOptn[linkedin]" value="<?php echo esc_textarea( $options['linkedin'] ); ?>"> <label class="description" for="cOptn[linkedin]"><?php _e( 'Please Enter LinkedIn link', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Phone Number', 'sampletheme' ); ?></th> <td> <input id="cOptn[phone_number]" class="large-text" type="text" name="cOptn[phone_number]" value="<?php echo esc_textarea( $options['phone_number'] ); ?>"> <label class="description" for="cOptn[phone_number]"><?php _e( 'Please Enter Phone Number', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Phone Number Two', 'sampletheme' ); ?></th> <td> <input id="cOptn[phone_number2]" class="large-text" type="text" name="cOptn[phone_number2]" value="<?php echo esc_textarea( $options['phone_number2'] ); ?>"> <label class="description" for="cOptn[phone_number2]"><?php _e( 'Please Enter Phone Number', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Fax Number', 'sampletheme' ); ?></th> <td> <input id="cOptn[fax]" class="large-text" type="text" name="cOptn[fax]" value="<?php echo esc_textarea( $options['fax'] ); ?>"> <label class="description" for="cOptn[fax]"><?php _e( 'Please Enter Your Fax Number', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Email', 'sampletheme' ); ?></th> <td> <input id="cOptn[email]" class="large-text" type="text" name="cOptn[email]" value="<?php echo esc_textarea( $options['email'] ); ?>"> <label class="description" for="cOptn[email]"><?php _e( 'Please Enter Your Email Address', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Support Email', 'sampletheme' ); ?></th> <td> <input id="cOptn[support_email]" class="large-text" type="text" name="cOptn[support_email]" value="<?php echo esc_textarea( $options['support_email'] ); ?>"> <label class="description" for="cOptn[support_email]"><?php _e( 'Please Enter Your Support Email Address', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Address', 'sampletheme' ); ?></th> <td> <input id="cOptn[address]" class="large-text" type="text" name="cOptn[address]" value="<?php echo esc_textarea( $options['address'] ); ?>"> <label class="description" for="cOptn[address]"><?php _e( 'Please Enter Your Address', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Time', 'sampletheme' ); ?></th> <td> <input id="cOptn[time]" class="large-text" type="text" name="cOptn[time]" value="<?php echo esc_textarea( $options['time'] ); ?>"> <label class="description" for="cOptn[time]"><?php _e( 'Please Enter Your Time', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Footer About Text', 'sampletheme' ); ?></th> <td> <input id="cOptn[footer_about]" class="large-text" type="text" name="cOptn[footer_about]" value="<?php echo esc_textarea( $options['footer_about'] ); ?>"> <label class="description" for="cOptn[footer_about]"><?php _e( 'Please Enter Your Footer About', 'sampletheme' ); ?></label> </td> </tr> <tr valign="top"><th scope="row"><?php _e( 'Copyright Text', 'sampletheme' ); ?></th> <td> <textarea id="cOptn[copyright]" class="large-text" cols="50" rows="10" name="cOptn[copyright]"><?php echo esc_textarea( $options['copyright'] ); ?></textarea> <label class="description" for="cOptn[copyright]"><?php _e( 'Footer Copyright Text', 'sampletheme' ); ?></label> </td> </tr> </table> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e( 'Save Options', 'sampletheme' ); ?>" /> </p> </form> </div> <style> div#wpfooter { display: none !important; } div#wpcontent { padding: 20px 50px; } </style> <script> jQuery(document).ready(function($){ var custom_uploader; $('#upload_logo_button').click(function(e) { e.preventDefault(); if (custom_uploader) { custom_uploader.open(); return; } custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false }); custom_uploader.on('select', function() { attachment = custom_uploader.state().get('selection').first().toJSON(); $('.logourl').val(attachment.url); $('.logourlshow').attr('src', attachment.url); }); custom_uploader.open(); }); }); </script> <script> jQuery(document).ready(function($){ var custom_uploader; $('#upload_flogo_button').click(function(e) { e.preventDefault(); if (custom_uploader) { custom_uploader.open(); return; } custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false }); custom_uploader.on('select', function() { attachment = custom_uploader.state().get('selection').first().toJSON(); $('.flogourl').val(attachment.url); $('.flogourlshow').attr('src', attachment.url); }); custom_uploader.open(); }); }); </script> <script> jQuery(document).ready(function($){ var custom_uploader; $('#upload_fimage_button').click(function(e) { e.preventDefault(); if (custom_uploader) { custom_uploader.open(); return; } custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false }); custom_uploader.on('select', function() { attachment = custom_uploader.state().get('selection').first().toJSON(); $('.fimageurl').val(attachment.url); $('.fimageurlshow').attr('src', attachment.url); }); custom_uploader.open(); }); }); </script> <?php } Plumbing & Drain Cleaning in Northwest Indiana | Meerkat Plumbing & Drain

MEERKAT PLUMBING & DRAIN

Big on service.
Built on trust.
We keep
life flowing.

Plumbing. Drains. Sewers.
Professional solutions for your home and business.

FREE ESTIMATES AVAILABLE

Financing available through Wisetack →

NORTHERN INDIANA & SOUTHWEST MICHIGAN

Excavator working beside a trench on a residential plumbing project

LOCAL PEOPLE. SERIOUS CAPABILITY.

Your property deserves professional care.

✓ Licensed plumbing professionals

✓ Clear service recommendations

✓ Local service. Professional care.

FIND THE SERVICE YOU NEED

One call.
A clear path forward.

From everyday repairs to bigger plumbing projects, choose a service to learn how we can help.

01

Drain & sewer cleaning

Slow drains, recurring clogs, and main-line backups. Get help finding the right cleaning approach.

Explore service →

02

Plumbing repairs

Leaking pipes, dripping faucets, broken shutoff valves, and fixtures that need attention.

Explore service →

03

Water heaters

No hot water or an aging tank? Explore repair and replacement options for your home.

Explore service →

04

Sewer inspection & repair

Camera inspection, targeted repairs, and replacement options for damaged sewer piping.

Explore service →

05

Sump pumps

Repair, replacement, and backup options for the equipment that manages basement water.

Explore service →

06

Water softeners

Address hard-water concerns with equipment selected for your water conditions and household needs.

Explore service →

PLUMBING HELP FOR YOUR BUSINESS

Keep your business
moving forward.

Plumbing problems can interrupt operations. We help property owners, facility managers, restaurants, and other businesses address repairs, drain blockages, and maintenance needs.

Commercial plumbing →

Commercial drain cleaning →

THE MEERKAT APPROACH

Professional service.
Without the guesswork.

01

Call or send a service request. We’ll discuss your location, the problem, and appointment availability.

02

Know your options.

We assess the issue and explain the recommended work and pricing before you authorize it.

03

Choose your next step.

Approve the work that fits your needs. We explain the results and any additional recommendations.

LOCAL EXPERIENCE. PERSONAL ACCOUNTABILITY.

Meet your plumber.
Know who you’re calling.

Meerkat Plumbing & Drain is owned by Tim Malenius, a licensed plumbing contractor and Michigan master plumber. We serve local homeowners and businesses with practical recommendations and clearly defined work.

About Meerkat →   Read customer reviews →

Licensed to serve you

Indiana Plumbing Contractor
PC12400217

Michigan Plumbing Contractor
8005005

Michigan Master Plumber
8113763

YOUR NEIGHBORHOOD. OUR SERVICE AREA.

Northern Indiana.
Southwest Michigan.

Explore local service information, or contact us to confirm availability at your address.

MORE WAYS TO PAY

Financing available through Wisetack

Ask Meerkat Plumbing & Drain about financing for your plumbing project. We can provide financing options with your eligible estimate or invoice.

Financing requires credit approval; available terms vary by applicant. Loans are provided by Wisetack’s lending partners. How customer financing works.

LET’S GET LIFE FLOWING

Request plumbing
service.

Tell us a little about your plumbing needs. Our team will follow up to discuss your request and scheduling.

Need to speak with us?
219-344-7655

For an urgent problem, call to discuss current availability. Sending this form does not confirm an appointment.

Coupons & Special Offers

See our current offers, then visit the coupon page to print and redeem your coupon.

CURRENT OFFERFREE
ESTIMATES

Available for proposed plumbing repairs, replacements, and installations.

PRINTABLE COUPON$40 OFF
DRAIN CLEANING

Present your coupon before service begins. Terms apply.

Coupon terms and redemption instructions are available on the Coupons page.

Your home. Your business.
Your local plumber.

Meerkat Plumbing & Drain — We keep life flowing.

PROFESSIONAL PLUMBING. MODERN SOLUTIONS.

Quality service, from the first call to the final detail.

From fixture upgrades to plumbing repairs and drain cleaning, explore our services and see examples of work completed by Meerkat Plumbing & Drain.

Illustration of a modern kitchen sink and faucetIllustrative image

Contact Meerkat Plumbing & Drain

Choose how you'd like to reach our team or send a service request below.

Call for Service

Speak with our team about your plumbing concern and availability.

CALL 219-344-7655

Request Service

Tell us what needs attention and we'll follow up.

REQUEST SERVICE

Service Areas

See the Northwest Indiana and Southwest Michigan communities we serve.

VIEW SERVICE AREAS

Customer Feedback

Questions or feedback about a recent service visit?

SEND FEEDBACK

Request Plumbing Service

Tell us about your plumbing needs. Preferred days and times are requests, not confirmed appointments. For urgent service, please call.

    View Our Services