Script works from 3d view but not from Shape Keys (properties) window

Hello everyone!
I wrote a simple script for faster working with shape keys on multiple objects, and it works when it’s called from 3d View window, but from object Properties window (where it most fast way to call and use) - it works only for a single object, not for all which selected…
I think it’s because of some context nuances, but can’t find the correct solution, please help!

import bpy

class MultiShapeKeySwitcher(bpy.types.Operator):
    """On-Off selected (active) shape key on multiple objects."""
    bl_idname = "mesh.multishapekeyswitcher"
    bl_label = "MultiShapeKeySwitcher"


    def execute(self, context):
        
        #Script start: 

        currentactiveobject = bpy.context.active_object
        skn = bpy.context.active_object.active_shape_key.name
        skm = bpy.context.active_object.active_shape_key.mute
        
        for o in bpy.context.selected_objects:
            
            bpy.context.view_layer.objects.active = bpy.data.objects[o.name]
            bpy.context.object.data.shape_keys.key_blocks[skn].mute = not skm
            #making this shape key active (selected):
            sk_index = bpy.context.object.data.shape_keys.key_blocks.find(skn)
            bpy.context.object.active_shape_key_index = sk_index
            

        #bpy.context.view_layer.objects.active = currentactiveobject
        
        #Script end.
        
        return {'FINISHED'}


def register():
    bpy.utils.register_class(MultiShapeKeySwitcher)

def unregister():
    bpy.utils.unregister_class(MultiShapeKeySwitcher)

if __name__ == "__main__":
    register()

Thanks a lot!